Junior
Jaká je složitost odstranění prvku z konce vektoru v C++?
sobes.tech AI
Odpověď od AI
Amortizované O(1).
Při odstraňování prvku z konce vektoru (pop_back()), ve většině případů nedochází k přesunu nebo kopírování jiných prvků. Jedinou akcí je zmenšení velikosti vektoru.
Změna velikosti vektoru (capacity) nastává pouze tehdy, když je nutná realokace paměti (pokud byl vektor plný a poté byly odstraněny prvky, ale ne do úplně prázdného stavu). Nicméně, protože realokace při odstraňování prvků z konce jsou vzácné a jejich náklady jsou rozloženy na mnoho operací přidávání, považuje se amortizovaná složitost za konstantní.