2
« en: Martes 18 de Enero de 2011, 19:54 »
¡Hola a todos!
Me han mandado que realice una funcion para un programa que tomando como datos una matriz y un numero de fila coja esa fila de la matriz y la rote, insertando su elemento inicial al final y desplazando hacia la izquierda el resto de elementos. Os pongo un ejemplo: si la fila en cuestion fuese
(3 1 7 0) el programa tendria que convertirla en (1 7 0 3).
Ye he resuelto la parte en la que el programa extrae la fila y la convierte en un vector, y tambien la parte en el que el nuevo vector se inserta de nuevo en la matriz, pero no logro rotar los numeros. Me suena que la funcion push_back podria ayudarme pero no se su sintaxis ni como implementarla. Os dejo el fragmento de programa que he hecho:
void rotar(vector<vector<int> > &m, int fila) {
leematriz(m);
int c=m[0].size();
vector<int> v(c);
cout<<" "<<endl<<"La fila a cambiar es : ";
for(int j=0;j<c;j++) {
v[j]=m[fila-1][j];
cout<<v[j]<<" ";
}
cout<<endl;
for(int j=0;j<c;j++) m[fila-1][j]=v[j];
}
Espero vuestra ayuda, no tiene que ser muy complicado, solo que no se exactamente que debo usar.
Gracias a todos y saludos!!!!