Я знаю, что std::vector
элементы гарантированы непрерывными в памяти.Почему вектор вектора не может быть смежным? (или это?)
Итак, почему вы не можете ожидать, что вектор, содержащий другие векторы, будет иметь общую совокупность?
Предполагается, что вектор должен обеспечивать непрерывную структуру памяти для своих закрытых элементов, и если эти оболочки также являются векторами, то я ожидаю, что полное содержимое самого верхнего вектора будет находиться в непрерывной памяти.
Но, по-видимому, есть некоторые разногласия по этому вопросу относительно того, действительно ли это так. Можно ли надежно полагаться на это или нет? Некоторым людям кажется go out of their way для достижения этого, хотя я думаю, что это гарантировано.
Векторы не хранят свои данные напрямую. – chris
Спасибо, но я не совсем понимаю, что вы имеете в виду. – johnbakers
Векторы имеют указатель на свои данные. Я полагаю, что возможно сделать распределитель, который может это сделать. – chris