Я пишу внутренний цикл, который должен размещать структуры в непрерывном хранилище. Я не знаю заранее, сколько таких структур будет. Моя проблема в том, что вектор STL инициализирует свои значения равными 0, поэтому, что бы я ни делал, я несу расходы на инициализацию плюс затраты на установку значений членов структуры. p>
Есть ли какой-нибудь способ предотвратить инициализацию или существует STL-подобный контейнер с непрерывным хранилищем изменяемого размера и неинициализированными элементами?
(Я уверен, что эту часть кода необходимо оптимизировать, и уверен, что инициализация требует значительных затрат.)
Кроме того, см. мои комментарии ниже, чтобы узнать, когда происходит инициализация.
НЕКОТОРЫЙ КОД:
void GetsCalledALot(int* data1, int* data2, int count) {
int mvSize = memberVector.size()
memberVector.resize(mvSize + count); // causes 0-initialization
for (int i = 0; i < count; ++i) {
memberVector[mvSize + i].d1 = data1;
memberVector[mvSize + i].d2 = data2;
}
}
Подробнее здесь: https://stackoverflow.com/questions/965 ... ed-storage