chaînée liste dans la bibliothèque standard C ou de d'autres bibliothèques largement utilisées?

StackOverflow https://stackoverflow.com/questions/2800064

Question

Il semble qu'il n'y a qu'une liste chaînée double (mais pas de liste liée à l'unité) dans la bibliothèque standard C de, non? Y at-il des bibliothèques largement utilisées C ++ avec la liste chaînée?

Était-ce utile?

La solution

Il est slist , qui est une extension SGI (de __gnu_cxx::slist)

#include <iostream>
#include <iterator>
#include <ext/slist>

int main(int argc, char** argv) {
  __gnu_cxx::slist<int> sl;
  sl.push_front(1);
  sl.push_front(2);
  sl.push_front(0);
  std::copy(sl.begin(), sl.end(),  // The output is 0 2 1
            std::ostream_iterator<int>(std::cout, " "));
  std::cout << std::endl;
  return 0;
}

Autres conseils

Il y a la classe slist de Boost qui est une implémentation de liste chaînée.

Juste pour référence ...

Le temps a passé et 11 C ++ nous a apporté le std :: forward_list conteneur qui est mis en oeuvre sous forme de liste et ne essentiellement simplement chaînée pas de tête par rapport à sa mise en œuvre en C.

Par rapport à std::list ce conteneur offre plus d'espace de stockage efficace lorsque l'itération bidirectionnelle est pas nécessaire.

Attention: manque méthode push_back ( std :: forward_list et std :: forward_list :: push_back )

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top