私は次のコードに従って、std :: mapを逆反復しようとしています:http ://www.cplusplus.com/reference/stl/map/rend/ それは言う:
rend()は、マップコンテナの最初の要素の直前の要素を参照する逆イテレータを返します。これは、その逆端と見なされます。
rendはbeginと同じ要素を参照するのではなく、その直前の要素を参照することに注意してください。
map<float,int> m;
m.insert(pair<float,int>(.1,0));
m.insert(pair<float,int>(.4,5));
map<float,int>::reverse_iterator rend=m.rend();
map<float,int>::iterator begin=m.begin();
これを実行すると、上記の通知を前提として、rendとbeginの両方がmの最初の要素(.1,0)を指しますが、明らかにそうすべきではありません。私が犯している非常に明白な間違いがあるように感じますが、それが何であるかを理解することはできません。
(C ++、MSVC2010)