Въпрос за вектор в C++

respec7_m3

Registered
Инициализирам вектор от тип Int и му задавам размер 100 елемента, в момента, в който му подам 101 елемента той увеличава капацитета си на 150, подавам му 151 елемента, капацитета се увеличава на 225? На какъв принцип работи това увеличаване, защото всеки път го увеличава с различни стойности и защо изобщо се увеличава след като аз съм му казал колко голям да бъде?
 
Не можеш да му зададеш максимален размер. Това, което му задаваш, е началния капацитет. Когато се напълни той си увеличава капацитета със 50% (фактора на растене зависи от компилатора т.е. може да не е 50%).
100 + 50% (50) = 150
150 + 50% (75) = 225
Прави се с цел при добавянето на нов елемент да не се търси място в RAM паметта, което отнеме време. Затова предварително си заделя място за няколко елемента и когато се напълни това място си заделя още.
Не знам дали го обясних правилно и разбираемо, но за всеки случай прочети това.
 

Горе