elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Vector de vectores C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Vector de vectores C++  (Leído 11,179 veces)
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Vector de vectores C++
« en: 23 Febrero 2013, 01:50 am »

Buenas debido a necesidad he tenido que aprender a usar esto y quisiera que me dijeraís si esta bien o no.

El objetivo es hacer un vector bidimesional Ejemplo, v[ x ][ x ]
en el caso siguiente seria al final 10*10
Código
  1. vector< vector<int> > Vector2;
  2. vector<int> v1t;
  3.  
  4. for(int y=0;y<10;y++){
  5.    for(int x=0;x<10;x++){
  6.        v1t.push_back(y);
  7.    }
  8.    Vector2.push_back(v1t);
  9.    v1t.clear;
  10. }
  11.  
  12.  

Está bien echo así?


En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Vector de vectores C++
« Respuesta #1 en: 23 Febrero 2013, 17:38 pm »

Creo que el ejemplo te valdrá y aclarará un poco:

Código
  1. #include <iostream>
  2. #include<vector>
  3. #include <iomanip>
  4.  
  5. using namespace std;
  6. int main() {
  7.  
  8.  vector< vector<int> > Vector2 ( 10, vector<int> (10) );
  9.  
  10.  for(int y=0;y<10;y++){
  11.      for(int x=0;x<10;x++){
  12.          Vector2[y][x]=(x+y);
  13.      }
  14.  }
  15.  for ( int i = 0; i < 10; i++ ) {
  16.    for ( int j = 0; j < 10; j++ )
  17.      cout<< setw ( 3 ) << Vector2[i][j] <<' ';
  18.    cout<<'\n';
  19.    }
  20.  return 0;
  21. }
  22.  
  23.  

Saluditos!.


En línea

anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: Vector de vectores C++
« Respuesta #2 en: 23 Febrero 2013, 20:02 pm »

Yo esque cuando declaro el vector aún no se el tamaño, porque es dinamico y no se como hacerlo cuando se el tamaño exacto, por eso lo he echo como en el ejemplo.
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Vector de vectores C++
« Respuesta #3 en: 23 Febrero 2013, 20:54 pm »

Yo esque cuando declaro el vector aún no se el tamaño, porque es dinamico y no se como hacerlo cuando se el tamaño exacto, por eso lo he echo como en el ejemplo.

Supongo que aunque dinámico en algún momento tendrás que introducir las dimensiones del mismo, en el ejemplo que propones están dimensionados a priori a 10. En otro caso:

Código
  1. #include <iostream>
  2. #include<vector>
  3. #include <iomanip>
  4.  
  5. using namespace std;
  6. int main() {
  7.  int m,n;
  8.    cout<<"introduzca el numero de filas"<<endl;
  9.    cin>>m;
  10.    cout<<"introduzca el numero de columnas"<<endl;
  11.    cin>>n;
  12.  vector< vector<int> > Vector2 ( m, vector<int> (n) );
  13.  
  14.  for(int y=0;y<m;y++){
  15.      for(int x=0;x<n;x++){
  16.          Vector2[y][x]=(x+y);
  17.      }
  18.  }
  19.  for ( int i = 0; i < m; i++ ) {
  20.    for ( int j = 0; j < n; j++ )
  21.      cout<< setw ( 3 ) << Vector2[i][j] <<' ';
  22.    cout<<'\n';
  23.    }
  24.  return 0;
  25. }
  26.  

Saluditos!.
« Última modificación: 23 Febrero 2013, 21:04 pm por leosansan » En línea

anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: Vector de vectores C++
« Respuesta #4 en: 23 Febrero 2013, 21:10 pm »

no se mira.

Código
  1. lass SceneMap : public Scene {
  2.    public:
  3.        SceneMap(string name,int z=0);
  4.        ~SceneMap();
  5.        void Update();
  6.    private:
  7.    vector<vector <int> > i_Map;//tamaño del mapa
  8. ...
Código
  1. SceneMap::SceneMap(string name,int z){
  2.    setZ(z);
  3.    ifstream file(name.c_str());
  4.    file >> s_NameTiles;
  5.    file >> i_SizeTile;
  6.    file >> i_SizeMapW;
  7.    file >> i_SizeMapH;
  8.    Image_TileOrig.loadFromFile(s_NameTiles);
  9.    i_SizeTileW = Image_TileOrig.getSize().x/i_SizeTile;
  10.    i_SizeTileH = Image_TileOrig.getSize().y/i_SizeTile;
  11.    Image_TileDest.create(i_SizeMapW*i_SizeTile,i_SizeMapH*i_SizeTile,sf::Color::Red);
  12.    vector<int> vt;
  13.    for(int i=0;i<i_SizeMapH;i++){
  14.        for(int j=0;j<i_SizeMapW;j++){
  15.            vt.push_back(0);
  16.            file >> vt[j];
  17.            Image_TileDest.copy(Image_TileOrig,j*i_SizeTile,i*i_SizeTile,sf::IntRect(( ((vt[j]%i_SizeTileW)-1) * i_SizeTile),(( (vt[j]/i_SizeTileW)) * i_SizeTile),i_SizeTile,i_SizeTile));
  18.        }
  19.        i_Map.push_back(vt);
  20.        vt.clear();
  21.    }

Perdona si no me entero mucho hoy Leo...
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Vector de vectores C++
« Respuesta #5 en: 23 Febrero 2013, 22:13 pm »

no se mira.

Código
  1. lass SceneMap : public Scene {
  2.    public:
  3.        SceneMap(string name,int z=0);
  4.        ~SceneMap();
  5.        void Update();
  6.    private:
  7.    vector<vector <int> > i_Map;//tamaño del mapa
  8. ...
Código
  1. SceneMap::SceneMap(string name,int z){
  2.    setZ(z);
  3.    ifstream file(name.c_str());
  4.    file >> s_NameTiles;
  5.    file >> i_SizeTile;
  6.    file >> i_SizeMapW;
  7.    file >> i_SizeMapH;
  8.    Image_TileOrig.loadFromFile(s_NameTiles);
  9.    i_SizeTileW = Image_TileOrig.getSize().x/i_SizeTile;
  10.    i_SizeTileH = Image_TileOrig.getSize().y/i_SizeTile;
  11.    Image_TileDest.create(i_SizeMapW*i_SizeTile,i_SizeMapH*i_SizeTile,sf::Color::Red);
  12.   // vector<int> vt;  <====="esto no seria sino":
  13.  vector< vector<int> > vt ( i_SizeMapH, vector<int> (i_SizeMapW) );
  14.    for(int i=0;i<i_SizeMapH;i++){
  15.        for(int j=0;j<i_SizeMapW;j++){
  16.            vt.push_back(0);
  17.            file >> vt[j];
  18.            Image_TileDest.copy(Image_TileOrig,j*i_SizeTile,i*i_SizeTile,sf::IntRect(( ((vt[j]%i_SizeTileW)-1) * i_SizeTile),(( (vt[j]/i_SizeTileW)) * i_SizeTile),i_SizeTile,i_SizeTile));
  19.        }
  20.        i_Map.push_back(vt);
  21.        vt.clear();
  22.    }

....................

Espero que veas en el código mi propuesta y te sirva.

..............No obstante veo una incongruencia ya que vt se declara como bidimensional pero en líneas posteriores parece actuar como unidimensional ¿¿¿???. No, no tiene sentido.

Te lo dejo por si te sirve de algo.
:rolleyes:

Saluditos!.
« Última modificación: 23 Febrero 2013, 22:19 pm por leosansan » En línea

anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: Vector de vectores C++
« Respuesta #6 en: 23 Febrero 2013, 22:34 pm »

vale lo ví!

gracia modificaré el code

Saludos!!
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
vectores
Programación C/C++
tartagal 1 3,084 Último mensaje 7 Diciembre 2010, 17:16 pm
por Littlehorse
Stock Vector - Fuego[Diseño][Vectores][BS-FSE-FS-DL]
Diseño Gráfico
EmirSc 2 8,230 Último mensaje 24 Enero 2011, 04:05 am
por EmirSc
STL: Uso de vector para administrar vectores 3D (para juegos)
Programación C/C++
david_BS 3 3,246 Último mensaje 12 Mayo 2012, 19:13 pm
por david_BS
Dividir un Vector<objetoQueQuieras> en un array de vectores de n componentes
Java
rixi15 2 8,374 Último mensaje 2 Noviembre 2012, 13:26 pm
por rixi15
C++ OOP vectores de clases - como crear un vector de una clase « 1 2 3 »
Programación C/C++
GisiNA 22 16,044 Último mensaje 21 Febrero 2017, 17:12 pm
por GisiNA
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines