非常簡單:我有以下代碼和方法erase
不起作用。我看不出有什麼問題,有,因爲如果我去http://www.cplusplus.com/reference/list/list/erase/,語法爲:iterator erase (iterator position);
C++從對列表中刪除
list<pair<string,int>> l0 { { "name1", 20 }, { "name2", 30 }, { "name3", 40 } };
for(auto &it : l0)
l0 . erase(it);
,願你有一個問題,即存在的pair<string,int>
一個list
,而不是基本數據類型的list
?
編輯:問題是代碼是不可編譯的。
提示:'它由於'erase()'而改變。 –
除了擦除迭代器位置使該迭代器(或所有迭代器)無效外,代碼不應該編譯。 –
@DieterLücking確切地說,它不會編譯。順便說一下,第一條評論並沒有幫助我。你能給我另一個提示嗎? – scarface