Sobes.tech
Junior

C++'ta vektörün sonundan bir öğeyi kaldırmanın karmaşıklığı nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Aşamalı O(1).

Vektörün sonundan bir öğe kaldırıldığında (pop_back()), çoğu durumda diğer öğelerin taşınması veya kopyalanması gerçekleşmez. Tek işlem, vektörün boyutunun küçültülmesidir.

Vektörün boyutunun (capacity) değişimi, yalnızca bellek yeniden tahsis edilmesi gerektiğinde gerçekleşir (eğer vektör doluysa ve öğeler kaldırıldıysa, ancak tamamen boş hale gelmediyse). Ancak, sonundan öğe kaldırırken yeniden tahsisler nadiren gerçekleşir ve maliyetleri birçok ekleme işlemi arasında dağıtılır, bu nedenle amortize edilen karmaşıklık sabit kabul edilir.