chaînée liste dans la bibliothèque standard C ou de d'autres bibliothèques largement utilisées?
-
25-09-2019 - |
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?
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 )