Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: <<<-Basura->>> en 25 Marzo 2013, 22:18 PM

Título: java ArrayList en C++
Publicado por: <<<-Basura->>> en 25 Marzo 2013, 22:18 PM
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
Título: Re: java ArrayList en C++
Publicado por: naderST en 26 Marzo 2013, 06:07 AM
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/
Título: Re: java ArrayList en C++
Publicado por: <<<-Basura->>> 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??
Título: Re: java ArrayList en C++
Publicado por: amchacon en 3 Abril 2013, 14:23 PM
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;
}
Título: Re: java ArrayList en C++
Publicado por: 0xDani en 3 Abril 2013, 16:06 PM
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;
    }
Título: Re: java ArrayList en C++
Publicado por: naderST en 4 Abril 2013, 21:48 PM
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