Вектор проти списку
Часто плутають програмістів, векторів і списки - це послідовності, які використовуються у сховищах масивів на C ++ та Java. Два терміни містять адреси масиву, але з різними методами утримання масивів.
Основне, що нам потрібно знати, це те, що масив - це "список", який містить деякі або всі дані, тобто цілі числа, плаваючі точки або символи і визначається в дужках "[]."
Насправді вектори та списки діють відповідно до випадків. Тож давайте розглянемо ці два терміни один за одним.
Вектори
Вектори використовуються для утримання масиву та доступу до елементів. Тут ви можете отримати доступ до будь-якого елемента випадковим чином за допомогою оператора “[]”. Таким чином, легко переглядати всі елементи або один конкретний елемент за допомогою векторної операції. Отже, якщо ви вставляєте будь-який об’єкт в кінці, на початку або в середині, то вектори мають плюсову точку, тому що ви можете отримати доступ до випадкової адреси та внести зміни. Однак вектори дещо повільні порівняно зі списком об'єктів. Вектори вважаються синхронізованими об'єктами, ефективними у випадковому доступі, і вони належним чином зберігають дані синхронізованим списком. Вектор вибирається, коли немає необхідності вставляти чи видаляти в
посередині (список) або спереду.
Кількість елементів у масиві може різко відрізнятися.
Приклад:
вектор V;
В.інсерт (В.бегін (), 3);
assert (V.size () == 1 && V.capacity ()> = 1 && V [0] == 3);
Списки
Списки - це "подвійні пов'язані послідовності", що підтримують перехід вперед і назад. Час, який витрачається на вставлення та видалення на початку, в кінці, а в середині - постійний. Вставлення та сплайсинг між пов'язаними списками не скасовують жодної ітерації в елементах. Тільки видалення скасовує ітерацію. Вони не синхронізовані, тому вони не доступні випадковим чином. Упорядкування ітерацій може змінюватися залежно від користувача, але це не впливає на зміни елементів. Вони швидші, ніж вектори, і ідеально підходять для вставки та видалення на початку, середині та в кінці списків елементів.
Приклад:
#включати
// визначення класу-шаблону визначення
… .
int main ()
int масив [4] = 2, 6, 4, 8;
std :: список значень;
std: список іншихValues;
Підсумок:
1. Список не синхронізується, поки є вектор.
2. Списки не мають типового розміру, тоді як вектор має типовий розмір 10.
3. Списки та вектори - це масиви, що динамічно зростають.
4. Список не є безпечним для потоків, тоді як вектор є безпечним для потоків.
5. Списки, оскільки вони застосовуються лише для додавання та видалення спереду та ззаду, швидші
вектори займають більше процесора.
6. Вектор зростає за своїми розмірами вдвічі, тоді як список зменшується до половини, тобто на 50 відсотків.