Разница между вектором и списком
Опубликовано: 19 Июня, 2021
Вектор: вектор - это тип динамического массива, который может автоматически изменять размер после вставки или удаления элементов. Элементы вектора помещаются в непрерывное хранилище, чтобы к ним можно было получить доступ и пройти через итераторы. Элемент вставляется в конец вектора.
Пример:
вектор v; v.insert (5); v.delete ();
Список: Список - это последовательность с двойной связью, которая поддерживает как прямой, так и обратный обход. Время, затрачиваемое на вставку и удаление в начале, конце и середине, постоянно. Он имеет несмежную память и предварительно выделенную память нет.
Пример:
список l; l.insert_begin (5); l.delete_end ();

Ниже приведена таблица различий между Vector и List:
| Вектор | Список |
|---|---|
| У него непрерывная память. | Пока у него несмежная память. |
| Это синхронизировано. | Пока не синхронизируется. |
| Вектор может иметь размер по умолчанию. | У списка нет размера по умолчанию. |
| В векторе каждый элемент требует места только для себя. | В списке каждый элемент требует дополнительного места для узла, который содержит элемент, включая указатели на следующий и предыдущий элементы в списке. |
| Вставка в конце требует постоянного времени, но вставка в другом месте обходится дорого. | Вставка стоит дешево, где бы в списке она ни находилась. |
| Vector является потокобезопасным. | Список не является потокобезопасным. |
| Удаление в конце вектора требует постоянного времени, но для остального - O (n). | Удаление обходится дешево, независимо от того, где оно происходит в списке. |
| Возможен произвольный доступ к элементам. | Произвольный доступ к элементам невозможен. |
| Итераторы становятся недействительными, если элементы добавляются в вектор или удаляются из него. | Итераторы действительны, если элементы добавляются в список или удаляются из него. |