前に、配列ではなく、要素の最初の要素を返す:http://www.cplusplus.com/reference/stl/map/rend/ それは言う:のstd ::マップ::レンド()このコードは、次の、私がのstd ::マップを反復処理を逆転しようとしている
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();
私はこれを実行すると、両方レンドおよびmの最初の要素にポイントを始める、(.1,0)、それは、上記通知をしてはならない場合には明らか。非常に明白な間違いがあるように感じますが、何ができるのか理解できません。
(C++、MSVC2010)
rend
'' rend''がそのアイテムを指しているとあなたはどのように判断していますか? – Mat
これは明確な基準ではありません。どのような意味で、あなたはどこに虚偽を指しているのか決定しましたレンダリングを逆参照した場合、結果は無効です。これは未定義の動作です。 –