2012-09-03 69 views
0

我下面舉個例子:從C++列表中刪除一次

// remove from list 
#include <iostream> 
#include <list> 
using namespace std; 

int main() 
{ 
    int myints[]= {17,89,89,7,14}; 
    list<int> mylist (myints,myints+5); 

    mylist.remove(89); 

    cout << "mylist contains:"; 
    for (list<int>::iterator it=mylist.begin(); it!=mylist.end(); ++it) 
     cout << " " << *it; 
    cout << endl; 

    return 0; 
} 

結果是:

17, 7, 14 

這裏的問題是,它消除89 這兩種情況下有沒有簡單的如何去除89個實例?

+1

擦除需要迭代 – Lorlin

+0

@Lorlin我總是忘記東西的STL哦哦,對不起 –

回答

1

不,沒有。然而,你可能會做:

mylist.erase(find(mylist.begin(), mylist.end(), 89)); 
+0

'的std :: list'沒有成員函數'find'。 –

+1

eq:find是在不是列表中的成員。 – Indy9000

+0

對不起,更正。 – Lorlin