Sobes.tech
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í.