Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]

vector<int> vEntrada(tamano.length()), vProducto(tamano2.length());
vector < vector <int> > vPrincipal(tamano2.length(), vector<int>((tamano.length()+tamano2.length())-1));

vector<int>::reverse_iterator i, j;

   for(i=vProducto.rbegin(); i<vProducto.rend(); i++){
       for(j=vEntrada.rbegin(); j<vEntrada.rend(); j++){
           vPrincipal[][] = (*i)*(*j);
       }
   }


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 (cpp) [Seleccionar]


   vector<int> vEntrada(tamano.length()), vProducto(tamano2.length());
   vector < vector <int> > vPrincipal(tamano2.length(), vector<int>((tamano.length()+tamano2.length())-1));

   vector<int>::reverse_iterator i, j;
   vector<int>::reference ref;

   for(i=vProducto.rbegin(); i<vProducto.rend(); i++){
       // aqui agregarias otro elemento a myvector, no lo pongo yo...
       ref = myvector.back();
       for(j=vEntrada.rbegin(); j<vEntrada.rend(); j++){
           ref.push_back( (*i)*(*j) ); // o tambien: myvector.back().push_back( (*i)*(*j) ); para evitar vector<int>::reference ref;
       }
   }

Título: Re: vector < vector<int> > ?
Publicado por: bemone en 24 Agosto 2012, 02:12 AM
Cita de: BlackZeroX (Astaroth) 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 (cpp) [Seleccionar]


    vector<int> vEntrada(tamano.length()), vProducto(tamano2.length());
    vector < vector <int> > vPrincipal(tamano2.length(), vector<int>((tamano.length()+tamano2.length())-1));

    vector<int>::reverse_iterator i, j;
    vector<int>::reference ref;

    for(i=vProducto.rbegin(); i<vProducto.rend(); i++){
        // aqui agregarias otro elemento a myvector, no lo pongo yo...
        ref = myvector.back();
        for(j=vEntrada.rbegin(); j<vEntrada.rend(); j++){
            ref.push_back( (*i)*(*j) ); // o tambien: myvector.back().push_back( (*i)*(*j) ); para evitar vector<int>::reference ref;
        }
    }



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!¡.