У меня есть список целых чисел, которые мне нужно перебрать, но массив неадекватен. Каковы различия между векторами и списками и есть ли что-нибудь, что мне нужно знать, прежде чем я выберу тип?
Чтобы быть ясным, я прочитал документы QT, но это степень того, что я знаю:
QList, QLinkedList и QVector обеспечивают аналогичную функциональность. Вот обзор:
- Для большинства целей QList является подходящим классом. Его API на основе индексов более удобен, чем API-интерфейс, основанный на итераторе QLinkedList, и он обычно быстрее, чем QVector, из-за того, как он хранит свои элементы в памяти. Он также расширяется до меньшего количества кода в вашем исполняемом файле.
- Если вам нужен настоящий связанный список, с гарантией постоянных вставок времени в середине списка и итераторов на элементы, а не на индексы, используйте QLinkedList.
- Если вы хотите, чтобы элементы занимали смежные позиции памяти, используйте QVector.