Есть ли связанный список в C++, который я мог бы просто # включить? Или мне нужно создать свою собственную, если я хочу ее использовать?Есть ли связанный список предопределенной библиотеки в C++?
ответ
Как daniel notes, да, std::list
. Использование будет:
#include <list>
// ...
std::list<int> listOfInts;
listOfInts.push_back(1);
// ...
И так далее.
Вы можете найти полный список классов STL here. Раздел, в котором вы находитесь, - 3.2, Container classes. Еще одна полезная ссылка на стандартную библиотеку C++ - here.
#include <list>
В C++ мы имеем STL, стандартные библиотеки шаблонов, которые действительно содержат уйму implemantations популярных структур данных и алгоритмов, таких как стеки, очереди, связанные списки и популярные поисковые и алгоритмы сортировки даже .....
Как уже сказал Даниилом вы можете включить его #include < список>
Если вы открыты для поиска в 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++ об алгоритмах/и т. Д.
Рекомендация не использовать языковые функции ... hm. – GManNickG
Нет, я рекомендую развить понимание альтернатив (особенно, когда эти альтернативы используются на практике многими профессиональными программистами на С ++). – HostileFork
thanks ...................... – user69514
Это двойной список , который допускает двунаправленный обход, SGI STL (и некоторые другие) также определяют отдельные связанные списки, например, http://www.sgi.com/tech/stl/Slist.html. –
Но элемент в списке не имеет информации о его предшественнике и его преемнике ... Это может потребоваться ... – Offirmo