vector<list<int>>のデータ削除
Posted: 2017年9月26日(火) 05:11
C++についてです(知識は入門書程度の内容なら大体理解できる位)
vector<list<int>> foo = { {1}, {2,3,4,5},{6,7,8},{9,10} }というデータがあったとして
それから4を探し出して削除するとします
上のコードは自分で考えたものですが、list::eraseで削除する処理でエラーが起きてしまいます…
これ以上考えても正しいコードが分からないのでどのように書き換えるべきか教えてもらえると助かります
vector<list<int>> foo = { {1}, {2,3,4,5},{6,7,8},{9,10} }というデータがあったとして
それから4を探し出して削除するとします
#include<vector>
#include<list>
#include<iterator>
using namespace std;
int main() {
vector<list<int>> foo = { {1}, {2,3,4,5},{6,7,8},{9,10} };
for (auto f_it = cbegin(foo); f_it != cend(foo); ++f_it) {
for(auto s_it = cbegin(*f_it); s_it != cend(*f_it); ++s_it) {
if (*s_it == 4)s_it.erase(s_it); //Error
}
}
return 0;
}
これ以上考えても正しいコードが分からないのでどのように書き換えるべきか教えてもらえると助かります