std::map のキー: 要件と実装
異なるクラスのオブジェクトをマッピングするために std::map を利用する場合、キーとして使用する予定のキーは、有効なキーに必要な要件を満たしていない可能性があります。 std::map は順序付けメカニズムを使用してその内容を編成します。これにより、任意のクラスがキーとして機能できるかどうか、または特定の要件が存在するかどうかという問題が生じます。
std::map のキーは次の条件に従う必要があります。要件:
マップの順序は、3 番目のテンプレート引数またはコンストラクター引数によって制御されます。デフォルトは std::less
struct CmpMyType { bool operator()( MyType const& lhs, MyType const& rhs ) const { // Implementation of comparison logic } };
比較演算子が厳密な順序を定義していることを確認してください。 CmpMyType()( a, b ) が true を返す場合、 CmpMyType()( b, a ) は false を返す必要があります。両方が false を返す場合、要素は同等とみなされ、同じ同等クラスに属します。
以上が任意のクラスが std::map のキーとして機能できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。