unordered_mapの内容を逆の順序で出力しようとしていますが、rbeginまたはrendがないため、reverse_iteratorを使用できません。unordered_mapの反転はどのように行われることになっていますか?
編集(コメントから):キーを挿入された順序にしたいので、マップを使用できません。キーは挿入順序のままであるように見えますが、逆にする必要があります。
unordered_mapの内容を逆の順序で出力しようとしていますが、rbeginまたはrendがないため、reverse_iteratorを使用できません。unordered_mapの反転はどのように行われることになっていますか?
編集(コメントから):キーを挿入された順序にしたいので、マップを使用できません。キーは挿入順序のままであるように見えますが、逆にする必要があります。
質問の最初の文を読むだけで、答えが得られます。
unordered_map
の内容を逆順に印刷しようとしています
順序付けされていないため、任意の順序で印刷することはできません。順序付けられていない構造で順序について話すことは意味がありません。の内容が内部でどのようにunordered_map
構成されているかは問題ではありません。これは実装の詳細であり、アクセスすることはできません。外の世界に対しては、unordered_map
秩序をまったく示さず、それを期待することはできません。
任意の双方向反復子のペアから独自の反転反復子のペアを作成できます。
std::reverse_iterator rbegin(first);
std::reverse_iterator rend(last);
@Tin が示唆したように、これは機能しません。どうでも。
順序付けされていないマップのコンテンツを別の順序付けされていないマップに挿入します。データを保持するために、ペア形式で make_pair を使用して挿入することを忘れないでください。
同じ問題がありました。 unordered_map はデータを逆順に格納します
それで
map[A]=X
map[B]=Y
map[C]=Z
for(map:iterator it=begin...) を繰り返すと、次のようになります
Z
Y
X
順序を意味するので、魔女は逆です