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