Sobes.tech
Middle

C++ da std::vector va std::list konteynerlari uchun operatsiyalar murakkabligi qanday?

sobes.tech AI

AIdan javob

std::vector

  • Indeks bo'yicha kirish: O(1)
  • Oxiriga qo'shish (push_back): amortizatsiya qilingan O(1)
  • O'rtada joylashtirish yoki o'chirish: O(n), chunki elementlarni siljitish talab qilinadi
  • Takrorlash: O(n)

std::list (ikki tomonlama bog'langan ro'yxat)

  • Indeks bo'yicha kirish: O(n), chunki ketma-ket o'tish talab qilinadi
  • Har qanday joyda joylashtirish va o'chirish (agar iterator mavjud bo'lsa): O(1)
  • Takrorlash: O(n)

Shuning uchun, vector tezkor kirish va oxiriga qo'shish uchun samarali, list esa elementlarni siljitmasdan ko'p joylashtirish va o'chirish uchun mos keladi.