Вы хотите сохранить размер буфера, перезаписав старые элементы. Просто переписывайте старые с течением времени. Если вы хотите иметь дело с случаем, когда nItems < limit, то вам нужно будет справиться с этим, это просто простой пример использования modulo для вставки в буфер фиксированного размера.
std::vector<int> data(10);
for (int i = 0 ; i < 100 ; ++i)
{
data[i%10] = i;
}
for (std::vector<int>::const_iterator it = data.begin() ; it !=data.end(); ++it)
{
std::cout << *it << std::endl;
}
Этот способ вставки сохранит последние 10 элементов в буфере.
Я не понимаю ваш вопрос ... Вы хотите реализовать циклический список, используя * зЬй: вектор *? – m0skit0
нет. это моя реализация с std :: vector. Однако это не очень хорошая идея. вставить, а затем удалить, чтобы сохранить фиксированный размер ... – mahmood
http://www.boost.org/doc/libs/1_49_0/libs/circular_buffer/doc/circular_buffer.html возможно? – Bart