Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: bemone en 23 Agosto 2012, 07:38 am



Título: vector < vector<int> > ?
Publicado por: bemone en 23 Agosto 2012, 07:38 am
Buenas, tengo que almacenar en una matriz la multiplicacion de dos arreglos y mi problema es que no se como acceder a la posicion de la matriz. Tendre que crear otras variables e ir decrementandolas para acceder? No creo que esa sea la mejor manera. En fin:

Código
  1. vector<int> vEntrada(tamano.length()), vProducto(tamano2.length());
  2. vector < vector <int> > vPrincipal(tamano2.length(), vector<int>((tamano.length()+tamano2.length())-1));
  3.  
  4. vector<int>::reverse_iterator i, j;
  5.  
  6.    for(i=vProducto.rbegin(); i<vProducto.rend(); i++){
  7.        for(j=vEntrada.rbegin(); j<vEntrada.rend(); j++){
  8.            vPrincipal[][] = (*i)*(*j);
  9.        }
  10.    }

Saludos


Título: Re: vector < vector<int> > ?
Publicado por: BlackZeroX en 23 Agosto 2012, 08:10 am
Solo necesitas: vector<int>::reference junto con back() y ocupar el miembro push_back();

http://www.cplusplus.com/reference/stl/vector/back/

Código
  1.  
  2.    vector<int> vEntrada(tamano.length()), vProducto(tamano2.length());
  3.    vector < vector <int> > vPrincipal(tamano2.length(), vector<int>((tamano.length()+tamano2.length())-1));
  4.  
  5.    vector<int>::reverse_iterator i, j;
  6.    vector<int>::reference ref;
  7.  
  8.    for(i=vProducto.rbegin(); i<vProducto.rend(); i++){
  9.        // aqui agregarias otro elemento a myvector, no lo pongo yo...
  10.        ref = myvector.back();
  11.        for(j=vEntrada.rbegin(); j<vEntrada.rend(); j++){
  12.            ref.push_back( (*i)*(*j) ); // o tambien: myvector.back().push_back( (*i)*(*j) ); para evitar vector<int>::reference ref;
  13.        }
  14.    }
  15.  
  16.  


Título: Re: vector < vector<int> > ?
Publicado por: bemone en 24 Agosto 2012, 02:12 am
Solo necesitas: vector<int>::reference junto con back() y ocupar el miembro push_back();

http://www.cplusplus.com/reference/stl/vector/back/

Código
  1.  
  2.    vector<int> vEntrada(tamano.length()), vProducto(tamano2.length());
  3.    vector < vector <int> > vPrincipal(tamano2.length(), vector<int>((tamano.length()+tamano2.length())-1));
  4.  
  5.    vector<int>::reverse_iterator i, j;
  6.    vector<int>::reference ref;
  7.  
  8.    for(i=vProducto.rbegin(); i<vProducto.rend(); i++){
  9.        // aqui agregarias otro elemento a myvector, no lo pongo yo...
  10.        ref = myvector.back();
  11.        for(j=vEntrada.rbegin(); j<vEntrada.rend(); j++){
  12.            ref.push_back( (*i)*(*j) ); // o tambien: myvector.back().push_back( (*i)*(*j) ); para evitar vector<int>::reference ref;
  13.        }
  14.    }
  15.  
  16.  

Lo que vos decis es almacenarlo en un vector y luego almacenar ese vector a la matriz?


Título: Re: vector < vector<int> > ?
Publicado por: BlackZeroX en 24 Agosto 2012, 05:50 am
De hecho con:  myvector.back().push_back( (*i)*(*j) ); lo agregas directamente a la matriz... obviamente debes crear un nuevo vector... OJO son suposiciones pues la verdad NO SE COMO QUIERES ACCEDER a myvector... la otra forma es crear variables...

Dulces Lunas!ˇ.