Esiste un elenco collegato in C++ che potrei includere solo #include? O devo creare il mio se voglio usarne uno?Esiste una libreria predefinita di elenchi collegati in C++?
risposta
Come daniel notes, sì, std::list
. Usage sarebbe:
#include <list>
// ...
std::list<int> listOfInts;
listOfInts.push_back(1);
// ...
E così via.
È possibile trovare un elenco completo di classi STL here. La sezione che stai cercando è 3.2, Classi contenitore. Un altro riferimento utile della libreria standard C++ è here.
#include <list>
in C++ abbiamo la STL, Template Librerie standard che contengono molto aa di implemantations di strutture di dati popolari e algoritmi come pile, code, liste collegate e la ricerca popolare e algoritmi di ordinamento anche .....
Come già detto da Daniel è possibile includere da #include < list>
Se si è aperti a esaminare Qt, si potrebbe voler provare i propri contenitori (come QList, QMap e QString). QList supporta il pattern C++ iteratore, così come il probabilmente più facile "Java-style iterators" ... che più simile a questo:
QList<QString> list; list << "A" << "B" << "C" << "D"; QListIterator<QString> i(list); while (i.hasNext()) qDebug() << i.next();
L'idea che i programmatori C++ devono sempre utilizzare la libreria standard dovrebbe essere preso con un grano di sale. Per elenchi, mappe, stringhe e quasi tutto il resto ... scoprirai che i progetti di alto profilo spesso usano qualcos'altro. Il codice sorgente di Mozilla ha 9 delle sue diverse classi concrete per le stringhe, perché std :: string non soddisfaceva le loro esigenze di internazionalizzazione/etc.
Mentre non si dovrebbe sempre usare la libreria standard C++ in ogni tipo di progetto, si deve assolutamente conoscere COME per utilizzarlo. Contiene classi estremamente generali, ben collaudate, ben documentate e disponibili su ogni installazione. Ciò lo rende una buona base per comunicare con altri programmatori C++ sugli algoritmi/ecc.
Raccomandare di non utilizzare le funzionalità del linguaggio ... hm. – GManNickG
No, raccomando di sviluppare una consapevolezza delle alternative (specialmente quando quelle alternative sono utilizzate nella pratica da molti programmatori C++ professionali). – HostileFork
grazie ...................... – user69514
Questa è una doppia lista collegata , che consente l'attraversamento bidirezionale, il SGI STL (e alcuni altri) definiscono anche singoli elenchi concatenati, per esempio http://www.sgi.com/tech/stl/Slist.html. –
Ma l'elemento nell'elenco non ha informazioni sul suo predecessore e sul suo successore ... Potrebbe essere necessario ... – Offirmo