Я хотел бы зарезервировать память для внутреннего вектора в std::vector<std::vector<TYPE>>
, чтобы избежать большого количества отдельных выделений памяти во время последующего push_back
. Я не знаю точно innerSize
вектора, но могу дать хорошую оценку.
std::resize
можно использовать как
vecs.resize(outerSize, std::vector<TYPE>(innerSize));
, где outerSize
и innerSize
- целые числа. Это не работает для меня, потому что конструктор по умолчанию не применяется. Однако std::reserve
не предоставляет такой интерфейс.
Это хороший способ зарезервировать память для всех внутренних векторов?
vecs.resize(outerSize);
for (auto &elem : vecs) {
elem.reserve(innerSize);
}