[解決済み] std::mapの順序を確認する方法は?
2022-03-02 05:40:12
質問
を使用しています。
std::map<int, ...>
挿入時に、整数キーの昇順で反復処理されるようにするにはどうすればよいですか?
どのように解決するのですか?
何もする必要はありません。マップはキーの値に従って昇順になります。
内部的には、マップはキー間の比較を行い、要素の順番を決めます。デフォルトでは
std::less<KEY>
と等価である。
bool operator<(int, int)
は整数の場合です。ユーザー定義型の場合は、オプションが必要です。
-
を実装します。
bool operator<(const MyType&, const MyType&)
ユーザー定義型間の厳密な弱い順序の比較を実装しています。あなたの型が自然な順序を持つ場合にこれを使用します。 -
厳密な弱順序を実装したバイナリファンクタを用意し、それを3番目のテンプレートパラメータとしてマップに渡します。あなたの型が自然な順序付けを持たない場合、あるいは
std::less<Key>
を経由してbool operator<(...)
を1点目から
通常、舞台裏では、マップは自己調整可能な二分木として実装され、新しい要素をマップに配置したり、2つの要素が等しいかどうかを判断するために、厳密な弱い順序が使われます。余談ですが、同じロジックが
std::set
キーと値が同じである場合。
関連
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】Enterキーを押して続行する
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] std::stringをintに変換するにはどうしたらいいですか?
-
[解決済み] C++ std::map に指定されたキーが存在するかどうかを調べる方法
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み] std::mapの反復処理の順番は既知(規格で保証されている)ですか?