[SOLUCIONADO] VB Redim Preserve

Iniciado por Miseryk, 26 Enero 2012, 03:45 AM

0 Miembros y 1 Visitante están viendo este tema.

Miseryk

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.
Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It's never too late to change our luck
So, don't let them steal your light
Don't let them break your stride
There is light on the other side
And you'll see all the raindrops falling behind
Make it out tonight
it's a revolution

CL!!!

BlackZeroX

#1
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!¡.
The Dark Shadow is my passion.

x64core

una pregunta que es mejor usar las clases en general o codear uno el codigo?

BlackZeroX

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!¡.
The Dark Shadow is my passion.

Miseryk

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).
Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It's never too late to change our luck
So, don't let them steal your light
Don't let them break your stride
There is light on the other side
And you'll see all the raindrops falling behind
Make it out tonight
it's a revolution

CL!!!