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


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Vectores vs Listas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Vectores vs Listas  (Leído 6,588 veces)
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Vectores vs Listas
« Respuesta #10 en: 2 Junio 2013, 07:06 am »

Eso es lo que te pregunto (en este caso que escogerías?)

Yo me decanto por vector, de la librería vector que contiene con sus funciones incorporadas casi todo lo que exiges: añadir, añadir en una cierta posición,quitar, ordenar, desordenar , cambiar tamaño y así hasta 31 funciones ya listas ara ser usadas a la carta. También me influye el que veo las listas demasiado enrevesadas para programarlas desde que queremos añadirle las funcionalidades que de forma natural proporciona la clase vector. Es mi humilde opinión.

Saluditos!. .... ..


« Última modificación: 2 Junio 2013, 07:11 am por leosansan » En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Vectores vs Listas
« Respuesta #11 en: 2 Junio 2013, 10:15 am »

También me influye el que veo las listas demasiado enrevesadas para programarlas desde que queremos añadirle las funcionalidades que de forma natural proporciona la clase vector.
C++ incluye también una clase lista que ofrece las mismas funciones que la clase vector

Bueno miento, el operador [] no está pero tampoco hace falta porque recorro el contenedor entero, no necesito acceder a posiciones aleatorias.


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Vectores vs Listas
« Respuesta #12 en: 2 Junio 2013, 11:27 am »

C++ incluye también una clase lista que ofrece las mismas funciones que la clase vector

Bueno miento, el operador [] no está pero tampoco hace falta porque recorro el contenedor entero, no necesito acceder a posiciones aleatorias.

Gracias por la información, en C++ ando escasito de conocimiento  aún, pero todo se andará.

Y como habrás notado, los códigos que realmente me atraen son especialmente los numéricos, supongo que por deformación profesional. De ahí que esté estirando el tema de la matriz de 10x10 como un chicle, le estoy sacando el jugo en forma de game a algo que inicialmente era pura cálculo. Digo esto último por la ingeniosa forma que se me ocurrió para generar los aleatorios entre uno y mil sin que se repitieran.

Saluditos!. ....Y como buen Leo me despido a lo grande:


En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Vectores vs Listas
« Respuesta #13 en: 2 Junio 2013, 12:02 pm »

Gracias por la información, en C++ ando escasito de conocimiento  aún, pero todo se andará.
¡De nada! Te dejo la referencia:
http://www.cplusplus.com/reference/list/list/

Pero el uso es idéntico a los vectores, solo hay que sustituir vector -> list y hacer el include:

Código
  1. #include <list>

Como no tienes el operador []. Para recorrer una lista tienes que usar un iterador:

Código
  1. list<int> MiLista;
  2.  
  3. // Relleno la lista
  4.  
  5. for (int i = 0; i < 100;i++)
  6.   MiLista.push_back(i);
  7.  
  8. // La muestro por pantalla
  9.  
  10. for (list<int>::iterator it = MiLista.begin(); it != MiLista.end();it++)
  11. {
  12.   cout<<*it<<endl;
  13. }
« Última modificación: 2 Junio 2013, 12:20 pm por amchacon » En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Vectores vs Listas
« Respuesta #14 en: 2 Junio 2013, 12:06 pm »

¡De nada! Te dejo la referencia:
http://www.cplusplus.com/reference/list/list/

Pero el uso es idéntico a los vectores, solo hay que sustituir vector -> list y hacer el include:

Código
  1. #include <list>

Como no tienes el operador []. Para recorrer una lista tienes que usar un iterador:

Código
  1. list<int>MiLista;
  2.  
  3. // Relleno la lista
  4.  
  5. for (int i = 0; i < 100;i++)
  6.   MiLista.push_back(i);
  7.  
  8. // La muestro por pantalla
  9.  
  10. for (list<int>::iterator it = MiLista.begin(); it != MiLista.end();it++)
  11. {
  12.   cout<<*it<<endl;
  13. }

Thanks, muchas thanks, creía que iba ser un tromento como las listas de C, todas llenas de punetros que al final no sabes ni adonde apunta los punteros y las flechas.  :laugh: :laugh: :laugh:. Ahora me meteré de lleno con ese tema, me has quitado el miedo a otro rollo batatero.

Saluditos y gracia nuevamente!. .... ..
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Vectores vs Listas
« Respuesta #15 en: 2 Junio 2013, 12:30 pm »

Bueno ya que estoy, te digo más cosas de las listas.

Las listas no siguen un orden lineal, asi que pueden manipularse sus posiciones sin problemas. Por ello tenemos algunos elementos nuevos:

- Sort: Ordena los elementos de una lista de menor a mayor:

Código
  1. list<int>MiLista;
  2.  
  3. // Relleno la lista
  4.  
  5. for (int i = 0; i < 100;i++)
  6.   MiLista.push_back(rand());
  7.  
  8. // Ordeno la lista
  9.  
  10. MiLista.sort();
  11.  
  12. // La muestro por pantalla
  13.  
  14. for (list<int>::iterator it = MiLista.begin(); it != MiLista.end();it++)
  15. {
  16.   cout<<*it<<endl;
  17. }

- remove: Borra todos los elementos con un valor específico:

Código
  1. list<int>MiLista;
  2.  
  3. // Relleno la lista
  4.  
  5. for (int i = 0; i < 100;i++)
  6.   MiLista.push_back(rand());
  7.  
  8. // ¡Elimino los ceros!
  9.  
  10. MiLista.remove(0);
  11.  
  12. // La muestro por pantalla
  13.  
  14. for (list<int>::iterator it = MiLista.begin(); it != MiLista.end();it++)
  15. {
  16.   cout<<*it<<endl;
  17. }

- unique: Elimina los elementos repetidos.


Te dejo los vídeos con los que aprendí a usar listas:
http://minidosis.org/C++/Listas/

¡Saludillos!

« Última modificación: 2 Junio 2013, 12:37 pm por amchacon » En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Vectores vs Listas
« Respuesta #16 en: 2 Junio 2013, 13:58 pm »

Bueno ya que estoy, te digo más cosas de las listas.
.....................................

Gracias nuevamente, dedicaré unos días a empollarme el tema, parece interesante. Aunque visto a bote pronto es casi como la clase vector, de entrada parecen muy semejantes. Pero, en fin,supongo que según profundice en el tema veré mejor las diferencias y bondades de cada método.

Saluditos campeón !... ...
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Vectores vs Listas
« Respuesta #17 en: 2 Junio 2013, 14:16 pm »

Gracias nuevamente, dedicaré unos días a empollarme el tema, parece interesante. Aunque visto a bote pronto es casi como la clase vector, de entrada parecen muy semejantes. Pero, en fin,supongo que según profundice en el tema veré mejor las diferencias y bondades de cada método.
Sí, son muy parecidas. La mayor diferencia es el rendimiento de las operaciones:

Insertar un elemento al final

- Listas: Rápido, solo tiene que reservar un nuevo espacio en la memoria y enlazarlo con la última lista.
- Vector: Velocidad moderada, tiene que intentar hacer un realloc, si hay más espacio contiguo en la memoria no hay problema pero si no lo hay tendrá que mover todos los elementos a una nueva posición.

Acceso a una posición aleatoria

- Listas: Lento, tiene que ir recorriendo toda la lista hasta llegar al elemento en cuestión.
- Vector: Muy rápido.

Borrar un elemento aleatorio

- Listas: Rápido, simplemente elimina el elemento y ajusta los punteros.
- Vector: Lento, tiene que reorganizar los datos para que sigan estando contiguos en la memoria.

Inserción aleatoria

- Listas: Rápido, añade el nuevo elemento y ajusta los punteros.
- Vector: Lento, tiene que desplazar todos los elementos para dejar espacio al nuevo elemento.


Básicamente, los vectores ganan en acceso aleatorio y las listas ganan en inserción/borrado aleatorio.

« Última modificación: 2 Junio 2013, 14:26 pm por amchacon » En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Vectores vs Listas
« Respuesta #18 en: 2 Junio 2013, 15:00 pm »

Sí, son muy parecidas. La mayor diferencia es el rendimiento de las operaciones:
................................................
Básicamente, los vectores ganan en acceso aleatorio y las listas ganan en inserción/borrado aleatorio.

Por lo que veo verifican las mismas características que existen en C entre los arrays y las listas, lo cual me confirma en la idea de que la clase lista en C++ es una implementación de todas aquellas funciones/operaciones que en C hay que hacer "a mano" a través de punteros. Sin duda una comodidad a favor de C++ sobre todo porque yo aún me lío con el uso de los puteros en las listas.

Gracias otra vez por  la información tan clara y puntual que me ofreces.

Saluditos!. .... ..
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Uso de Listas: Subprograma que lea 2 listas y forme una.
Dudas Generales
hbenitez 2 3,759 Último mensaje 8 Agosto 2010, 20:11 pm
por hbenitez
Ayuda Acerca De Listas y Listas Circulares (Revienta Memoria :S)
Programación C/C++
Gerik 0 6,323 Último mensaje 12 Septiembre 2010, 01:49 am
por Gerik
vectores
Programación C/C++
tartagal 1 3,311 Último mensaje 7 Diciembre 2010, 17:16 pm
por Littlehorse
Vectores c++
Programación C/C++
Stakewinner00 8 5,102 Último mensaje 14 Julio 2012, 20:55 pm
por DickGumshoe
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines