Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Miseryk en 26 Enero 2012, 03:45 AM

Título: [SOLUCIONADO] VB Redim Preserve
Publicado por: Miseryk en 26 Enero 2012, 03:45 AM
Hola nuevamente, estuve buscando como lograr el redim de VB en C++, pero no pude hacer funcionar varios códigos descargados desde internet porque lo que estoy tratando de hacer es realizarlo con una estructura como por ejemplo:

struct MiStruct
{
  long ID;
 
  vector<string> v1;

  vector<string> v2;

  string Resultado;
} M_Var[1];

Y que le cargue datos en el index 1, lo que quiero hacer es redimencionarla a 2 por ejemplo, sin perder los valores anteriores.

Desde ya muchas gracias.
Título: Re: [AYUDA] VB Redim Preserve
Publicado por: BlackZeroX en 26 Enero 2012, 07:04 AM
Veo que estas en C++ asi que puedes usar la clase vector para que no te compliques la vida... ojala yo hubiera hecho lo mismo xP.

Código (cpp) [Seleccionar]


#include <string>
#include <vector>
#include <iostream>
#include <cstdlib>
using namespace std;

using namespace std;

typedef
struct
MiStruct
{
   long id;
   vector<string> v1;
   vector<string> v2;
   string Resultado;
}
MYSTRUCT, *LPMYSTRUCT;

int main()
{
    vector<MYSTRUCT> udtStruct;
    udtStruct.resize(1);
    udtStruct[0].id = 666;
    udtStruct[0].v1.push_back("Hola Mundo!¡.");
    cout << udtStruct.size() << endl;
    udtStruct.resize(100);
    cout << udtStruct.size() << endl;
    udtStruct.resize(10);
    cout << udtStruct.size() << endl << endl;
    cout << udtStruct[0].id << "\n" << udtStruct[0].v1[0] << endl;
    udtStruct.clear();
    cout << "Se liberaro el array/vector de tipo MYSTRUCT" << endl;
    cout << udtStruct.size() << endl;
    return EXIT_SUCCESS;
}



Revisa esta pagina:  http://www.cplusplus.com/reference/stl/vector/resize/

Nota si lo quieres ahcer a la antiguita (ANSI C) usa realloc() http://www.cplusplus.com/reference/clibrary/cstdlib/realloc/

Dulces Lunas!¡.
Título: Re: [AYUDA] VB Redim Preserve
Publicado por: x64core en 26 Enero 2012, 07:11 AM
una pregunta que es mejor usar las clases en general o codear uno el codigo?
Título: Re: [AYUDA] VB Redim Preserve
Publicado por: BlackZeroX en 26 Enero 2012, 07:29 AM
Cita de: RHL en 26 Enero 2012, 07:11 AM
una pregunta que es mejor usar las clases en general o codear uno el codigo?

Si estas en C++ que mejor usar la STL que por algo esta asi me en este caso es mejor usar la clase vector, asi no te lias con realloc() y claro que lo puedes usar, pero a mi criterio mejor usar vector...

Dulces Lunas!¡.
Título: Re: [AYUDA] VB Redim Preserve
Publicado por: Miseryk en 26 Enero 2012, 18:49 PM
Excelente, muchas gracias BlackZeroX, antes de ver lo que codeaste, pense algo extremadamente similar pero con push_back :) usando el vector y se me alentaba un poco.
Muchas gracias a todos por su ayuda y aporte :D (Y).