Y a-t-il une liste chaînée en C++ que je pourrais juste #include? Ou dois-je créer le mien si je veux en utiliser un?Existe-t-il une bibliothèque prédéfinie de liste chaînée en C++?
Répondre
Comme daniel notes, oui, std::list
. L'utilisation serait:
#include <list>
// ...
std::list<int> listOfInts;
listOfInts.push_back(1);
// ...
Et ainsi de suite.
Vous trouverez une liste complète des classes STL here. La section que vous recherchez est 3.2, Classes Container. Une autre référence utile de la bibliothèque standard C++ est here.
#include <list>
En C++, nous avons la STL, les bibliothèques de modèles standard qui ne contiennent aa beaucoup de implemantations de structures de données populaires et des algorithmes tels que les piles, les files d'attente, listes chaînées et la recherche populaire et algorithmes de tri même .....
Comme nous l'avons dit par daniel vous pouvez l'inclure par #include liste <>
Si vous êtes ouvert à la recherche sur Qt, vous pouvez essayer leurs conteneurs (comme QList, QMap et la très bonne QString). QList soutient le modèle de iterator C++, ainsi que le sans doute plus facile "Java-style iterators" ... qui ressemble plus à ceci:
QList<QString> list; list << "A" << "B" << "C" << "D"; QListIterator<QString> i(list); while (i.hasNext()) qDebug() << i.next();
L'idée que les programmeurs C++ doivent toujours utiliser la bibliothèque standard doit être pris avec un grain de sel. Pour les listes, les cartes, les chaînes, et presque tout le reste ... vous constaterez que les projets de haut niveau utilisent souvent autre chose. Le code source de Mozilla possède 9 de ses propres classes concrètes pour les chaînes, car std :: string ne répondait pas à leurs besoins d'internationalisation/etc.
Bien que vous ne devriez pas toujours utiliser la bibliothèque standard C++ dans chaque type de projet, vous devez absolument savoir COMMENT pour l'utiliser. Il contient des classes extrêmement générales, bien testées, bien documentées et disponibles sur chaque installation. Cela en fait un bon point de départ pour communiquer avec d'autres programmeurs C++ sur les algorithmes/etc.
Recommande de ne pas utiliser les fonctionnalités de langue ... hm. – GManNickG
Non, je recommande de développer une prise de conscience des alternatives (surtout lorsque ces alternatives sont utilisées dans la pratique par de nombreux programmeurs C++ professionnels). – HostileFork
merci ...................... – user69514
Ceci est une liste double liée , ce qui permet la traversée bidirectionnelle, le SGI STL (et quelques autres) définissent également des listes simples liées, voir http://www.sgi.com/tech/stl/Slist.html par exemple. –
Mais l'élément dans la liste n'a aucune information sur son prédécesseur et son successeur ... Cela peut être nécessaire ... – Offirmo