Sobes.tech
Junior

Jaka jest złożoność usuwania elementu z końca wektora w C++?

sobes.tech AI

Odpowiedź od AI

Amortyzowane O(1).

Przy usuwaniu elementu z końca wektora (pop_back()), w większości przypadków nie dochodzi do przesunięcia ani kopiowania innych elementów. Jedynym działaniem jest zmniejszenie rozmiaru wektora.

Zmiana rozmiaru wektora (capacity) następuje tylko wtedy, gdy konieczna jest realokacja pamięci (jeśli wektor był pełny, a następnie elementy zostały usunięte, ale nie do całkowicie pustego stanu). Jednakże, ponieważ realokacje przy usuwaniu elementów z końca zdarzają się rzadko, a ich koszt rozkłada się na wiele operacji dodawania, złożoność amortyzowana jest uważana za stałą.