Я хочу повторно использовать std::vector
в цикле for.Однако мне нужно, чтобы вектор был пустым для каждого шага итерации цикла for.
Вопрос: Как быстро очистить вектор, не изменяя его емкость наиболее эффективным способом?
То, что я использовал до сих пор, это
std::vector<int> myVec;
for(int i=0; i<A_BIG_NUMBER; ++i) {
std::vector<T>().swap(myVec);
myVec.reserve(STANDARD_MAXIMUM);
/// .. doing business
}
Приветствия!
Решение:
Спасибо за ответы, воткак я реализовал (проверил) это:
#include <vector>
#include <iostream>
int main() {
int n = 10;
std::vector< int > myVec;
myVec.reserve(n);
for(int j=0; j<3; ++j) {
myVec.clear();
for(int i=0; i<n; ++i) {
myVec.push_back(i);
}
for(int i=0; i<myVec.size(); ++i) {
std::cout << i << ": " << myVec[i] << std::endl;
}
}
return 0;
}
РЕДАКТИРОВАТЬ: изменен с operator[]
на push_back
.