以下是我程序的主要功能,我找不到vector的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() 没有产生想要的结果,但是当我使用擦除时,我得到了想要的结果,为什么?