2009-11-14 4 views

ответ

31

Как daniel notes, да, std::list. Использование будет:

#include <list> 
// ... 
std::list<int> listOfInts; 
listOfInts.push_back(1); 
// ... 

И так далее.

Вы можете найти полный список классов STL here. Раздел, в котором вы находитесь, - 3.2, Container classes. Еще одна полезная ссылка на стандартную библиотеку C++ - here.

+1

thanks ...................... – user69514

+0

Это двойной список , который допускает двунаправленный обход, SGI STL (и некоторые другие) также определяют отдельные связанные списки, например, http://www.sgi.com/tech/stl/Slist.html. –

+0

Но элемент в списке не имеет информации о его предшественнике и его преемнике ... Это может потребоваться ... – Offirmo

4

В C++ мы имеем STL, стандартные библиотеки шаблонов, которые действительно содержат уйму implemantations популярных структур данных и алгоритмов, таких как стеки, очереди, связанные списки и популярные поисковые и алгоритмы сортировки даже .....

Как уже сказал Даниилом вы можете включить его #include < список>

2

Если вы открыты для поиска в Qt, вы можете попробовать свои контейнеры (например, QList, QMap и очень классный QString). QList поддерживает C++ шаблон итератора, а также, возможно, проще "Java-style iterators" ... которые выглядят примерно так:

QList<QString> list; 
list << "A" << "B" << "C" << "D"; 

QListIterator<QString> i(list); 
while (i.hasNext()) 
    qDebug() << i.next(); 

Идея, что C++ программисты всегда должны использовать стандартную библиотеку должен быть принят с зерном соли. Для списков, карт, строк и почти всего остального ... вы обнаружите, что громкие проекты часто используют что-то другое. Исходный код для Mozilla имеет 9 собственных различных конкретных классов для строк, потому что std :: string просто не удовлетворяет их потребности в интернационализации/и т. Д.

Хотя вы не всегда должны использовать стандартную библиотеку C++ в каждом виде проекта, вам обязательно нужно знать КАК. Он содержит классы, которые являются чрезвычайно общими, хорошо проверенными, хорошо документированными и доступны для каждой установки. Это делает его хорошей базой для общения с другими программистами на C++ об алгоритмах/и т. Д.

+0

Рекомендация не использовать языковые функции ... hm. – GManNickG

+0

Нет, я рекомендую развить понимание альтернатив (особенно, когда эти альтернативы используются на практике многими профессиональными программистами на С ++). – HostileFork