Middle
Care este complexitatea operațiilor pentru containerele std::vector și std::list în C++?
sobes.tech AI
Răspuns de la AI
std::vector
- Acces pe index: O(1)
- Adăugare la sfârșit (push_back): amortizat O(1)
- Inserare sau ștergere în mijloc: O(n), deoarece necesită deplasarea elementelor
- Iterare: O(n)
std::list (listă dublu înlănțuită)
- Acces pe index: O(n), deoarece necesită parcurgere secvențială
- Inserare și ștergere oriunde (dacă există un iterator): O(1)
- Iterare: O(n)
Prin urmare, vectorul este eficient pentru acces rapid și adăugare la sfârșit, în timp ce lista este potrivită pentru inserții și ștergeri frecvente în mijloc fără a fi nevoie să deplasați elementele.