Кроме того, что стандарт определяет, что он смежный, почему std::vector смежный?
Если у вас закончилось свободное пространство, ему необходимо перераспределить новый блок и скопировать старый блок в новый, прежде чем продолжить.
Что, если это не было смежным? Когда хранилище заполняется, оно просто выделит новый блок и сохранит старый блок. При доступе через итератор он выполнял бы просто > , < проверяет, в каком блоке находится индекс и возвращает его. Таким образом, он не должен копировать массив каждый раз, когда он заканчивается.
Будет ли это действительно работать/быть лучше? или я что-то пропустил?