Как стереть часть вектора? - PullRequest
0 голосов
/ 12 июля 2011

Если мой std :: vector имеет 1890 элементов, и я хочу сохранить первые 1000 и стереть остальные, а затем снова следующие 890 элементов и стереть первые 1000, .. поэтому цикл кажется необходимым.
Есть ли более удобный способ сделать это?

1 Ответ

5 голосов
/ 12 июля 2011

std::vector имеет функцию-член erase, которая позволяет стирать диапазон элементов без использования явного цикла. Например:

std::vector<whatever> x(1890);

// erase first 1000 items
x.erase(x.begin(), x.begin()+1000); 
...