Предположим, я хочу, чтобы представить двумерную матрицу int
как вектор векторов:Вектор векторов, резерв
std::vector<std::vector<int> > myVec;
Внутренний размер постоянен, скажем, 5, а внешний размер меньше или равным N
. Чтобы свести к минимуму перераспределение, я хотел бы зарезервировать место:
myVec.reserve(N);
Какой размер предполагается для внутреннего вектора? Является ли эта чисто реализация зависимой? Как это влияет на пространственную локальность данных? Поскольку внутренний размер является константой, есть ли способ сказать компилятору использовать этот постоянный размер? Как эти ответы изменяются, если изменяется размер внутреннего вектора?
Вектор векторов не является особенно хорошим способом представления прямоугольной матрицы. Это более полезно для зубчатых массивов, где каждая строка имеет различное количество столбцов. –