std::map のキー要件
クラスが標準ライブラリ std::map で有効なキーであるためには、特定の要件に従う必要があります。これらの要件により、マップ内でキーを確実に順序付けして比較できることが保証されます。
カスタム キーの実装
キーとして使用したいクラスがこれらの要件を満たさない場合は、元のクラスを継承し、必要な演算子を実装するラッパー クラス。これは、元のクラスを変更できない場合、または適切な比較演算子が提供されない場合に役立ちます。
次に、単純な構造体の比較演算子を実装するカスタム キー ラッパーの例を示します。
struct MyType { // ... original class members }; struct MyTypeWrapper { MyType original; bool operator<(const MyTypeWrapper& other) const { // ... custom comparison logic } };
MyTypeWrapper をキーとして使用すると、マップの順序が正しく維持されることを保証しながら、MyType クラスのオブジェクトをマップできます。
以上がクラスが「std::map」のキーとして使用されるために満たさなければならないキー要件は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。