Sobes.tech
Middle

What is the complexity of operations for std::vector and std::list containers in C++?

sobes.tech AI

Answer from AI

std::vector

  • Access by index: O(1)
  • Adding to the end (push_back): amortized O(1)
  • Insertion or deletion in the middle: O(n), as it requires shifting elements
  • Iteration: O(n)

std::list (doubly linked list)

  • Access by index: O(n), as it requires sequential traversal
  • Insertion and deletion anywhere (if iterator is available): O(1)
  • Iteration: O(n)

Thus, vector is efficient for fast access and appending at the end, while list is suitable for frequent insertions and deletions in the middle without the need to shift elements.