Разница между вектором и списком

Вектор против списка

Часто смущающие программистов, векторы и списки представляют собой последовательности, используемые в массивах в C ++ и Java. Два термина содержат адреса массивов, но с разными методами хранения массивов..
Основная вещь, которую нам нужно знать, это то, что массив - это «список», который содержит некоторые или все данные, то есть целые числа, числа с плавающей запятой или символы, и определяется в скобках «[]».
На самом деле векторы и списки действуют в соответствии с экземплярами. Итак, давайте посмотрим на эти два термина по одному.

векторы
Векторы используются для хранения массива и доступа к элементам. Здесь вы можете получить доступ к любому элементу случайным образом, используя оператор «[]». Таким образом, становится легко просматривать все элементы или один конкретный элемент с помощью векторной операции. Таким образом, если вы вставляете какой-либо объект в конец, в начало или в середину, то векторы имеют плюс, потому что вы можете получить доступ к случайному адресу и вносить в него изменения. Однако векторы немного медленнее по сравнению со списком объектов. Векторы считаются синхронизированными объектами, эффективными при произвольном доступе, и они правильно хранят данные в синхронизированном списке. Вектор выбирается всякий раз, когда нет необходимости вставлять или удалять
посередине (список) или спереди.
Количество элементов в массиве может сильно различаться.
Пример:
вектор V;
V.insert (В.begin (), 3);
assert (V.size () == 1 && V.capacity ()> = 1 && V [0] == 3);

Списки
Списки представляют собой «двойные связанные последовательности», поддерживающие как прямой, так и обратный обход. Время, необходимое для вставки и удаления в начале, конце и в середине, является постоянным. Вставка и соединение между связанными списками не делают недействительными какие-либо итерации в элементах. Только удаление делает недействительной итерацию. Они не синхронизированы, поэтому они не доступны в случайном порядке. Порядок итераций может меняться в зависимости от пользователя, но это не влияет на какие-либо изменения в элементах. Они быстрее векторов и идеально подходят для вставки и удаления в начале, середине и конце списков элементов..

Пример:
#включают
// список определения шаблона класса
... .
int main ()

int array [4] = 2, 6, 4, 8;
std :: list values;
std :: list otherValues;

Резюме:
1. Список не синхронизирован, пока вектор.
2. Списки не имеют размера по умолчанию, в то время как вектор имеет размер по умолчанию 10.
3. Списки и векторы являются динамически растущими массивами..
4. Список не является потокобезопасным, тогда как вектор является потокобезопасным.
5. Списки, поскольку они применяются только для добавления и удаления в передней и задней части, быстрее, а
векторы занимают больше процессора.
6. Вектор увеличивается в два раза, а список уменьшается вдвое, т.е. на 50%..