ホームページ > バックエンド開発 > C++ > カスタムのユーザー定義型を C マップのキーとして使用するにはどうすればよいですか?

カスタムのユーザー定義型を C マップのキーとして使用するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-29 05:16:15
オリジナル
665 人が閲覧しました

How Can I Use Custom User-Defined Types as Keys in C   Maps?

C のマップ キーとしてのカスタム ユーザー定義型

C 標準ライブラリのマップは、キーと値の効率的な検索および挿入操作を提供しますペア。ただし、ユーザー定義のクラスをマップ キーとして使用しようとすると、適切な比較関数がないため、開発者は不可解なエラー メッセージに遭遇する可能性があります。

一般的なエラー メッセージの 1 つは、「'operator

  • テンプレートの特殊化std::less: 別のオプションは、ユーザー定義型用に std::less テンプレートを特殊化することです。これにより、比較ロジックを std 名前空間内で直接定義できます。

    namespace std
    {
       template<>
       struct less<Class1>
       {
          bool operator() (const Class1& lhs, const Class1& rhs) const
          {
             return lhs.id < rhs.id;
          }
       };
    }
    ログイン後にコピー

    std::less を特殊化することで、明示的な演算子の公開を回避できます。コードの他の部分にオーバーロードして、比較ロジックをよりカプセル化します。

  • これらのアプローチのいずれかを使用することで、ユーザー定義型をマップ キーとして使用する制限を克服し、利点を得ることができます。 C 標準ライブラリの効率的なマッピング機能の利点。

    以上がカスタムのユーザー定義型を C マップのキーとして使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    著者別の最新記事
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート