Мой первый вопрос: «Почему вы используете вложенные векторы?»Если вам не нужно, чтобы размеры «2D-массива» были зазубренными, вы можете использовать один вектор и каноническую 2D-индексацию в 1D-массив (x + width * y).
Тем не менее, поскольку вектор копирует T экземпляров вокруг при изменении размера, и так далее, вектор указателей на большие объекты, вероятно, будет дешевле, поскольку копии будут меньше (копирование указателя по сравнению с «большим объектом»),Недостатком является то, что вам придется управлять распределением больших объектов самостоятельно, но может помочь что-то вроде boost_ shared_ptr (или стандартной версии, если у вас есть поддержка 0x - не auto_ptr, хотя)«Большой объект» здесь может быть любым, включая вложенные векторы или указатели на вектор, как в исходном примере, если это необходимо.
РЕДАКТИРОВАТЬ: Вы также можете использовать reserve () для предварительного выделения пространства в векторепредотвращая большое количество копий, если вы можете дать гарантии о количестве материала, который вы собираетесь вставить в вектор.