非常に簡単です:次のコードがあり、メソッド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
があるという問題があるかもしれません:私はhttp://www.cplusplus.com/reference/list/list/erase/に行けば、構文があるので、私はそこに何の問題が表示されませんか?
編集:問題は、コードがコンパイルできないことです。
ヒント: ' erase()によって変更されます。 –
イテレータの位置を消去するだけでなく、イテレータ(またはすべてのイテレータ)が無効になるだけでなく、コードはコンパイルされません。 –
@DieterLückingまさに、それはコンパイルするつもりはありません。ところで、最初のコメントは私を助けませんでした。別のヒントを教えてもらえますか? – scarface