2.Последовательный контейнер
Контейнеры последовательности включают: вектор, deque (двусторонняя очередь), list (список) и т. Д.
Vector(вектор)учебный классПредоставляет структуру данных с непрерывными адресами памяти, а также прямой и эффективный доступ к любому элементу вектора с помощью оператора индекса «[]». Он определен в заголовочном файле .
Векторпреимущество:
1. Векторы могут использоваться для реализации очередей, стеков, списков и других более сложных структур.
2. Поддержка векторовИтератор произвольного доступа, Итераторы вектора обычно реализуются как указатели на элементы вектора.
3. В отличие от массивов, когда память вектора исчерпана, автоматически выделяется большая непрерывная область памяти и исходные элементы копируются в новую область памяти.Это также является преимуществом вектора.
List(Список)ПоДвусвязный списокОпределение списка находится в заголовочном файле . Следовательно, операции, связанные со связанным списком, подходят для операций со списком. Он имеет два поля указателя, к которым можно обращаться вперед или назад, но он не поддерживается произвольным доступом.Двунаправленный итератор。
Списокпреимущество:
Очень удобно использовать, аналогично шаблону двусвязного списка, ноУниверсальностьЛучше и удобнее пользоваться.
Deque (двусторонний тип очереди)Класс состоит из двусторонних очередей, которым в большинстве случаев разрешено работать на обоих концах очереди. Поддерживает итераторы произвольного доступа, а также поддерживает доступ с помощью оператора индекса «[]». Если вы хотите увеличить пространство для хранения двухсторонней очереди, вы можете выделить его на обоих концах двухсторонней очереди в блоке памяти, обычно сохраняемом как эти массивы быстрых указателей. Двусторонняя очередь определяется в заголовочном файле .
Преимущества Deque (двусторонняя очередь):
1. Двухсторонняя очередь использует прерывное пространство памяти, и ее итератор более интеллектуален, чем векторный итератор.
2. После того, как блок хранения выделен двухсторонней очереди, он часто освобождается при удалении двухсторонней очереди.Это более эффективно, чем повторное выделение (освобождение и перераспределение), но при этом тратится больше памяти.
3.вектор
Вектор - это контейнер последовательности, используемый для хранения линейной последовательности неопределенной длины и обеспеченияБыстрый произвольный доступ(Также называемыйпрямое интервью). Это связано с тем, что векторные контейнеры используют динамические массивы для хранения объектов и управления ими. Поскольку массив представляет собой структуру данных с произвольным доступом, к элементам вектора можно обращаться произвольно.
Вектор - это динамический массив, поэтому его добавление в конце происходит быстро, а вот вставка в середину - медленно. Более того, вектор является динамической структурой, его размер не фиксирован, он может увеличиваться или уменьшаться во время работы программы.
Заявление об объекте векторного контейнера:
Do'stlaringiz bilan baham: |