Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Rozdiel medzi Vector a zoznam v C + +

C + + Štandardná Template Library obsahuje dve podobné ale odlišné nádoby : vektorové a zoznam . Vektor je súbor sekvenčne usporiadané údaje , ktoré môžu zväčšiť alebo zmenšiť dynamicky z , zoznam je súbor vzájomne prepojených položiek , ktoré nie sú nevyhnutne postupne usporiadané v pamäti , ale môže byť postupne pristupovať , pretože každá položka má väzbu na ďalšiu položku . Učenie rozdiely medzi vektorom a zoznamu vám pomôže písať viac optimalizované riešenie v C + + . Vloženie Rýchlosť

Údaje obsiahnuté vektorom je usporiadaný postupne v pamäti , čo znamená , že ak vložíte položku na začiatku vektora , musí byť každá položka vo vektore presťahoval " dole " by jeden . To je výpočtovo náročné , a to najmä pre veľké vektory . Tento výkon trestu je vždy , keď je položka vložená alebo odstránená z ľubovoľného miesta s výnimkou posledného prvku vektora . So zoznamom , údaje nemusí byť nutne usporiadané postupne v pamäti , namiesto toho , každá položka v zozname obsahuje odkaz na ďalšiu položku v zozname . Ak vložíte do zoznamu , položky môžu byť umiestnené kdekoľvek v pamäti , čo umožňuje vkladanie do zoznamu oveľa menej nákladné ako vložením do vektora .
Triedenie

kontajner Zoznam má vstavanú funkciu triedenia , ktorý umožňuje triediť položky na základe daných kritérií . Vektor , ale nemá túto vstavanú funkciu , a preto musíte napísať triedenie kód sami , ak chcete radiť vektor .
Random Access

Zoznamy majú pomalší časy náhodný prístup , ako vektorov . V vektora , živel možno pristupovať priamo jej index . To dáva vektor veľmi rýchly náhodný prístup k času . So zoznamom , na druhú stranu , môžete iba priamy prístup k prvej a poslednej prvky , musíte iterovat v zozname pre prístup k iné prvky , čo môže byť veľmi pomalé pre veľké zoznamy
zmena veľkosti .

vektory rastú dynamicky položky sa pridajú k nim . Keď vektor rastie , to zdvojnásobuje počet položiek , ktoré môže obsahovať . To môže vynútiť celý vektor , ktoré majú byť presunuté na iné miesto v pamäti , čo môže byť výpočtovo náročné . Zoznamy nemusíte ukladať svoje prvky súvisle v pamäti , a preto sa môže zväčšiť alebo zmenšiť jednu položku naraz , bez toho aby museli skopírovať celý zoznam na nové miesto .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené