java ArrayList en C++

Iniciado por <<<-Basura->>>, 25 Marzo 2013, 22:18 PM

0 Miembros y 1 Visitante están viendo este tema.

<<<-Basura->>>

Bueno como dice el titulo estoy buscando la forma de hacer listas dinámicas en C++.. de la misma forma que lo logro con el ArrayList en java...

Si me pueden decir que librería usar y Algún ejemplo.

, Gracias
<<<--Basura-->>>

naderST

Del estándar de C++ tienes la clase list. Aquí te dejo un ejemplo:

Código (cpp) [Seleccionar]

#include <iostream>
#include <list>

std::list<int> lista;

int main() {
    for(int i=1;i<=10;++i)
        lista.push_back(i);
    for(std::list<int>::iterator it = lista.begin();it != lista.end();++it)
        std::cout << *it << std::endl;
    return 0;
}


Documentación: http://www.cplusplus.com/reference/list/list/

<<<-Basura->>>

Gracias naderST, te puedo hacer una pregunta??

No existe alguna manera de hacer un iterator mas sencillo, ese si lo entiendo y lo he implementado en mi código, pero pienso que existe alguna manera de hacerlo mas corto o mas sencillo??
<<<--Basura-->>>

amchacon

Cita de: <<<-Underwar->>> en  3 Abril 2013, 13:09 PM
Gracias naderST, te puedo hacer una pregunta??

No existe alguna manera de hacer un iterator mas sencillo, ese si lo entiendo y lo he implementado en mi código, pero pienso que existe alguna manera de hacerlo mas corto o mas sencillo??
Eliminando los espacios de nombres:

Código (cpp) [Seleccionar]
#include <iostream>
#include <list>

using namespace std;

list<int> lista;

int main()
{
   for(int i=1;i<=10;++i)
       lista.push_back(i);

   for(list<int>::iterator it = lista.begin();it != lista.end();++it)
      cout << *it <<endl;

   return 0;
}


Aunque a mí personalmente me gusta más la clase vector:

Código (cpp) [Seleccionar]
#include <iostream>
#include <list>

using namespace std;

vector<int> lista;

int main()
{
   for(int i=1;i<=10;++i)
       vector.push_back(i);

   for(int i = 0;i < lista.size();i++)
      cout <<lista[i] <<endl;

   return 0;
}
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

0xDani

En C++11 puedes usar el for basado en rango para iterar sobre los elementos, tal que asi:

Código (cpp) [Seleccionar]
    #include <iostream>
    #include <list>
     
    using namespace std;
     
    list<int> lista;
     
    int main()
    {
       for(int i=1;i<=10;++i)
           lista.push_back(i);
     
       for(auto x : lista)
          cout << x <<endl;
     
       return 0;
    }
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

naderST

Cita de: amchacon en  3 Abril 2013, 14:23 PM
Eliminando los espacios de nombres:

Código (cpp) [Seleccionar]
#include <iostream>
#include <list>

using namespace std;

list<int> lista;

int main()
{
   for(int i=1;i<=10;++i)
       lista.push_back(i);

   for(list<int>::iterator it = lista.begin();it != lista.end();++it)
      cout << *it <<endl;

   return 0;
}


Aunque a mí personalmente me gusta más la clase vector:

Código (cpp) [Seleccionar]
#include <iostream>
#include <list>

using namespace std;

vector<int> lista;

int main()
{
   for(int i=1;i<=10;++i)
       vector.push_back(i);

   for(int i = 0;i < lista.size();i++)
      cout <<lista[i] <<endl;

   return 0;
}


Depende de lo que quieras hacer ya que list y vector son dos cosas diferentes. List se comporta como una lista y vector como un vector