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--じゃないのだろう。