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