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

Вектор срещу списък

Често объркващите за програмистите, векторите и списъците са последователности, използвани в масивите на C ++ и Java. Двата термина притежават адреси на масив, но с различни методи за задържане на масиви.
Основното, което трябва да знаем, е, че масивът е „списък“, който съдържа някои или всички данни, т.е. цели числа, плаващи точки или знаци и се определя в скоби „[].“
Всъщност векторите и списъците действат според инстанциите. Затова нека разгледаме тези два термина един по един.

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

списъци
Списъците са „двойно свързани последователности“, поддържащи преминаването напред и назад. Времето, отделено за вмъкване и изтриване в началото, края и в средата е постоянно. Вмъкването и сплитането между свързани списъци не обезсилват никаква итерация в елементите. Само премахването обезсилва итерацията. Те не са синхронизирани, така че не са достъпни на случаен принцип. Подреждането на итерации може да се промени според потребителя, но това не влияе на промени в елементите. Те са по-бързи от векторите и са идеални за вмъкване и изтриване в началото, средата и края на списъците с елементи.

Пример:
#include
// дефиниране на класа клас-шаблон
... .
int main ()

int масив [4] = 2, 6, 4, 8;
std :: списък стойности;
std :: списък на другиValues;

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