イテレータを使ったループ
map<int,int> mp;
for(auto it = mp.begin(); it != mp.end(); it++){
// hoge
}
range-based-forを使ったループ
map<int,int> mp;
for(auto val : mp){
// hoge
}
前からのループは書けるが後ろからのループはどうやって書いたらいいのか分からなかったのですが、ちょうどいいのを見つけました。
mp.end()-1
からmp.begin()
までイテレータをデクリメントするよりもこっちの方がよい気がします。
mp.rbegin()を使ったループ
map<int,int> mp;
for(auto it = mp.rbegin(); it != mp.rend(); it++){
// hoge
}
it++
するのが驚きです。 なんでit--
じゃないのだろう。