2013-10-13 211 views
0

以下是我的程序的主要功能,我無法找到clear()和erase()之間的任何區別,那麼爲什麼在下面的代碼中我得到不同的結果 當我使用erase()而不是clear() ?C++中vector的clear()和erase()方法之間的區別?

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();  
} 


} 

這裏明確的()沒有產生預期的效果,但是當我使用擦除我得到預期的效果,爲什麼呢?

+0

你是如何使用擦除? – 0x499602D2

+0

'erase()'需要迭代器。 '清除'不。什麼是問題? – juanchopanza

+0

Stackoverflow缺乏關閉原因「一般參考」 –

回答

10

clear()刪除矢量中的所有元素,留下大小爲零的矢量,而erase()刪除矢量中的單個元素或一系列元素。

相關問題