Какие итераторы поддерживают произвольный доступ, но не непрерывное хранилище в C++?

Я видел, что существует новый итератор, начиная с C++17, ниже приведен скриншот в cppreference. Я был очень смущен. Что за итераторы с произвольным доступом, но не с непрерывным хранилищем в C++? в противном случае ContiguousIterator не является мощным, чем RandomAccessIterator? право?

введите описание изображения здесь

И тогда ссылка здесь

1 ответ

Один несмежный контейнер с итераторами с произвольным доступом std::deque, Цитирование сайта cppreference:

В отличие от std::vector элементы deque не сохраняются непрерывно: типичные реализации используют последовательность индивидуально распределенных массивов фиксированного размера.

Сложность (эффективность) обычных операций над запросами заключается в следующем:

  • Произвольный доступ - постоянная O(1)
  • Вставка или удаление элементов в конце или начале - постоянная O(1)
  • Вставка или удаление элементов - линейный O(n)
Другие вопросы по тегам