Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - amchacon

#631
Cita de: OmarHack en 17 Julio 2013, 15:19 PM
Y me imagino que también más complicada no?
Todo lo contrario  ;)

Hay clases/funciones para casi todo, lo cual te facilita mucho la tarea.
#632
SFML. A diferencia de las otras está hecha en C++ y es mucho más completa que las SDL.
#633
Cita de: Josephvilla06 en 17 Julio 2013, 02:23 AM
si, pero cual es la razon por la que la matriz es mas complicada?
No tiene ninguna complicación  :huh:
#634
Programación C/C++ / Re: scanf y gets
17 Julio 2013, 02:43 AM
Pues sin saber el tipo de variable y sin ver el warning no te podemos ayudar mucho.

Eso sí, gets está anticuada y no está recomendada su uso. En su lugar es preferible usar fgets:
http://www.cplusplus.com/reference/cstdio/fgets/

Que vendría a ser:
fgets(nombre,10,stdin); // Leer del teclado 10 caracteres y meterlos en nombre
#635
¿Ein?

Eso dependerá del proyecto en cuestión, y por supuesto la dificultad es siempre subjetiva.
#636
Programación C/C++ / Re: Problema con _itoa_s
16 Julio 2013, 21:25 PM
Código (cpp) [Seleccionar]
int cosa = 3;
char Texto[10];
_itoa_s(cosa,Texto,10,10);

cout<<Texto;


Aunque yo en C++ usaría la clase stringstream, que además estándar y portable:

Código (cpp) [Seleccionar]
#include <sstream>

//...

int cosa = 3;
stringstream Mensaje;

Mensaje<<"El contenido de la variable es: "<<cosa;

cout<<Mensaje.str();
#637
Programación C/C++ / Re: Problema con _itoa_s
16 Julio 2013, 20:20 PM
El segundo valor es la cadena donde quieres meter el resultado.

Aunque yo no usaría esa función porque no es portable... ¿Estas en C o C++?
#638
Prueba esto:

Código (cpp) [Seleccionar]
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string word;
    cout << "palabra: ";
    getline(cin, word);
    cout << word << endl;
   
    cin.get();
   
    cout << "otra: ";
    getline(cin, word);
    cout << word << endl;
}
#639
Mm... Pues vaya sorpresa  :-\

He hecho una miniprueba:

Código (cpp) [Seleccionar]
#include <iostream>
#include <vector>

class A
{
  public:
   int cosa;

   A(int i) : cosa(i) { std::cout<<"Constructor invocado: "<<i<<std::endl;}
   A(const A & b){std::cout<<"Constructor copia invocado: "<<b.cosa<<std::endl; this->cosa = b.cosa;}
   ~A() { std::cout<<"Destructor invocado: "<<cosa<<std::endl;}
};
int main()
{
   A Buffer[5] { 0,1,2,3,4};
   std::vector<A> Cosas;
   std::cout<<"Empezando... "<<std::endl<<std::endl;

   for (short i = 0; i < 5;i++)
       Cosas.push_back(Buffer[i]);

   std::cin.get();
   return 0;
}


Te va diciendo los objetos que se van destruyendo, se construyen o se copian... Al parecer a partir de los 3 objetos, el vector intenta recolocar la memoria y para ello tiene que destruir los objetos y volverlos a construir en otra parte.

Pues parece que tenías razón  ;). Por curiosidad hice la prueba con listas:

Código (cpp) [Seleccionar]
#include <iostream>
#include <list>

class A
{
  public:
   int cosa;

   A(int i) : cosa(i) { std::cout<<"Constructor invocado: "<<i<<std::endl;}
   A(const A & b){std::cout<<"Constructor copia invocado: "<<b.cosa<<std::endl; this->cosa = b.cosa;}
   ~A() { std::cout<<"Destructor invocado: "<<cosa<<std::endl;}
};
int main()
{
   A Buffer[5] { 0,1,2,3,4};
   std::list<A> Cosas;
   std::cout<<"Empezando... "<<std::endl<<std::endl;

   for (short i = 0; i < 5;i++)
       Cosas.push_back(Buffer[i]);

   std::cin.get();
   return 0;
}


Aquí no pasa, de modo que está claro que es por el realloc() que se hace.
#640
Cita de: X3R4CK3R en 15 Julio 2013, 16:25 PM¿por qué al hacer un push_back, el resto de elementos que ya estaban en el vector son destruídos? o al menos, la función destructor es ejecutada. No lo entiendo. :/

Me da la impresión de que no me estoy explicando bien, pero no sé como explicarlo mejor, no es algo que necesite resolver, pero es una duda que me desconcierta y quiero aclarar.  :rolleyes:
Los mensajes del destructor no vienen del push_back sino de los delete que has puesto.