Sobes.tech
Junior

Каква е сложността на изтриването на елемент от края на вектора в C++?

sobes.tech AI

Отговор от AI

Амортизирано O(1).

При премахване на елемент от края на вектора (pop_back()), в повечето случаи не се извършва преместване или копиране на други елементи. Единственото действие е намаляване на размера на вектора.

Промяната на размера на вектора (capacity) се случва само когато е необходимо преразпределение на паметта (ако векторът е бил пълен, а след това е премахнато елементите, но не до напълно празно състояние). Въпреки това, тъй като преразпределенията при премахване на елементи от края се случват рядко и техните разходи се разпределят върху много операции по добавяне, амортизираната сложност се счита за константна.