Я пытаюсь найти самый быстрый способ сохранить постоянное количество элементов в векторе (или, может быть, есть какая-то готовая структура, которая делает это автоматически).Сохранение постоянного количества элементов в векторе
В моем приложении я добавляю несколько элементов в вектор, и мне нужно сделать это быстро. Из-за изменения размера вектора в какой-то момент он значительно уменьшает общую скорость приложения. То, что я думал о том, чтобы сделать что-то вроде этого:
if(my_vector.size() < 300)
my_vector.push_back(new_element);
else
{
my_vector.pop_front();
my_vector.push_back(new_element);
}
, но после первых тестов я понял, что это может быть не лучшим решением, потому что я не уверен, что если pop_front()
и позже push_back()
не по-прежнему необходимо изменить размер в какой-то момент.
Есть ли другие решения для этого?
IIRC он изменяет размер, когда счетчик переходит на мощность 2. – Carlos
Вы можете использовать 'std :: array', если знаете размер элементов, которые вы хотите. Или даже лучше использовать и 'std :: deque', который оптимизирован для вставки/удаления передних/задних и всегда проверяет' size() 'перед тем, что вы делаете. – GeorgeAl
@ Карлос Потому что в моем случае у меня есть 100 с этих векторов, даже если половина изменяет размер, это занимает значительное количество времени. – sebap123