• Martes 12 de Noviembre de 2024, 20:49

Autor Tema:  insertar elemento al final de un vector  (Leído 1852 veces)

natalialo

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
insertar elemento al final de un vector
« en: Martes 18 de Enero de 2011, 19:54 »
0
¡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!!!!

Munire

  • Nuevo Miembro
  • *
  • Mensajes: 6
  • Nacionalidad: es
    • Ver Perfil
Re: insertar elemento al final de un vector
« Respuesta #1 en: Martes 18 de Enero de 2011, 20:24 »
0
el algoritmo en pseudocodigo seria:



aux = m[0];        // guardar el primer elemento en una variable auxiliar

desde 0 hasta num-1     // (num = 4  en este caso)
{
    m = m[i+1];
}
m[i+1] = aux;     //esccribe el primer elemento en el ultimo.

natalialo

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: insertar elemento al final de un vector
« Respuesta #2 en: Martes 18 de Enero de 2011, 20:45 »
0
¡¡¡Muchas gracias Munire!!!
Ya tengo el programa funcionando perfectamente, gracias de nuevo y saludos  :beer: