リストの中のいくつかの要素を削除したい、以下の実装では7,14,26,77を削除したいと思います。最後に17,9O、45,50を印刷します。しかし、それは何か間違っている(このプログラムは正常に実行されますが、何も印刷しません)、誰でも私を助けることができますか?C++のリストの要素を削除するには
// remove from list
#include <iostream>
#include <list>
using namespace std;
int main()
{
int myints[]= {17,89,7,14,26,77,45,50};
std::list<int> mylist (myints,myints+8);
std::list<int>::iterator p = mylist.begin();
std::list<int>::iterator q = mylist.begin();
advance(p, 2);
advance(q, 5);
for(p; p!=q; p++){
mylist.remove(*p);
}
std::cout << "mylist contains:";
for (std::list<int>::iterator it=mylist.begin(); it!=mylist.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
を期待したものでしょう'p ++'はすべきだと思いますか? – Steve
このプログラムは正常に実行されますが、何も印刷されません – kdhug886
最初にいくつの要素を 'mylist'に追加しますか? – 1201ProgramAlarm