Кроме того, что стандарт определяет его непрерывность, почему std :: vector смежный?Почему std :: vector смежный?
Если у вас заканчивается пространство, ему необходимо перераспределить новый блок и скопировать старый блок в новый, прежде чем продолжить.
Что делать, если это не было смежным? Когда хранилище заполняется, оно просто выделит новый блок и сохранит старый блок. При доступе через итератор он выполнил бы просто>, < проверяет, в каком блоке находится индекс и возвращает его. Таким образом, ему не нужно копировать массив каждый раз, когда у него заканчивается пространство.
Будет ли это действительно работать/быть лучше? или я что-то пропустил?
'std :: vector' - это абстракция над динамическим массивом C-стиля. То, что вы описываете, звучит так же, как 'std :: deque'. – Xeo
Вот почему у вас есть, например, ['std :: deque'] (http://en.cppreference.com/w/cpp/container/deque), если вам не нужен непрерывный доступ к памяти. –
Существует множество вариантов использования, где требуется непрерывное хранение или значительное улучшение с точки зрения производительности. – Joe