Следующее является основной функцией моей программы, я не мог найти разницы между clear() и erase() вектора, то почему в следующем коде я получаю разные результаты, когда я использую erase() вместо clear()?
int main()
{
int notest, N, temp;
long long sum, profit;
int count;
vector<int> S;
S.reserve(50009);
cin>>notest;
for(int test=0; test<notest; test++)
{
profit = 0;
cin>>N;
for(int i=0; i<N; i++)
{
cin>>temp;
S.push_back(temp);
}
DO SOME THING HERE
S.clear();
}
}
Здесь clear() не дает желаемых результатов, но когда я использую стирание, я получаю желаемые результаты, почему?
clear()
удаляет все элементы из вектора, оставляя за собой вектор нулевого размера, а erase()
удаляет один или несколько элементов из вектора.
Erase принимает параметр - вещь для стирания. ясные свалки.
Согласно руководству http://en.cppreference.com/w/cpp/container/vector