Разлика между STL контейнери вектор, deque, списък, набор° С

Автор: alek_yam ← обратно към списъка ← →

  • последователен контейнер, който позволява бърз достъп до произволен елемент с помощта на операциите за индексиране [] или at().
  • преоразмеряването на вектор (включително имплицитно при извикване на методи push_back(), pop_back(), insert(), erase() е скъпа операция
  • предоставя допълнителни възможности за управление на разпределението на паметта reserve() и capacity().
  • предоставя итератори с произволен достъп

  • последователен контейнер, оптимизиран за вмъкване и изтриване на елементи
  • операциите индексиране [] и at() липсват поради ниската им ефективност
  • предоставя допълнителни инструменти за ефективно манипулиране на списъци: splice(), sort(), merge(), reverce(), както и операции за премахване на елементи от списък: remove(), remove_if(), unique()
  • предоставя двупосочни итератори

  • последователен контейнер, оптимизиран по такъв начин, че операциите му с глава и опашка са почти толкова ефективни, колкото при списъците, а индексирането е почти толкова ефективно, колкото при векторите; обаче вмъкването и изтриването на елемент някъде в "средата на контейнера" ​​е неефективно по същия начин, както при векторите
  • предоставя итератори с произволен достъп

  • асоциативен контейнер, където ключът е стойността на самия елемент
  • всички елементи са уникални по стойност и се съхраняват в постоянно подредено състояние; Операцията за гласуване се използва като критерий за сравнение по подразбиране