Задать вопрос
@Quark_Hell
C++ программист

Почему доступ к элементам vector-а O(1)?

Насколько я понял, при создании массива в памяти выделяется фиксированное количество ячеек, которые располагаются последовательно, благодаря чему по времени доступ к каждой ячейке постоянный.

А с вектором дела обстоят иначе. Каждый элемент хранит указатель на следующий после него.

Почему тогда поулчение любого элемента вектора всё-равно остаётся O(1)? Ведь для получения элемента нам нужно сначала пройти все предыдущие, а это уже O(n)
  • Вопрос задан
  • 525 просмотров
Подписаться 1 Простой 1 комментарий
Ответ пользователя Dmitrii К ответам на вопрос (3)
@dima20155
you don't choose c++. It chooses you
То, что вы называете вектором - это связанный список, по своей сути. Вот статья навики. Слово вектор, насколько, я знаю, не используется в контексте классических структур банных. Если же под вектором имеется в виду std::vector, то данный вектор создан на основе динамического массива.
Ответ написан