透明なコンパレータの重要性
C 14 では、連想コンテナ内に「透明なコンパレータ」として知られる区別が導入されています。この記事では、この概念の目的と意味について詳しく説明します。
透明なコンパレータの理論的根拠
Dietmar と remyabel の回答で提示された問題は、以前の連想コンテナの制限を浮き彫りにしています。コンテナのキー タイプと直接比較できないタイプでは、特定の操作 (検索、カウントなど) を実行できませんでした。透過的コンパレータは、コンテナのキーと比較できる型の使用を有効にすることでこの問題に対処します。
デフォルトの動作と互換性
透過的コンパレータは、コンテナのデフォルトの動作には影響しません。標準的なコンテナ。透過的なコンパレータ オーバーロードを追加すると、オプションでそれらを使用して柔軟性を高めることができます。デフォルトでは、コンテナは以前と同様に動作し、下位互換性を維持します。
透過的ファンクターの使用法
透過的コンパレーターを利用するには、単に std のような「透過的ファンクター」を使用します。 :less<> は、任意の引数の型を受け入れます。これにより、異種検索操作が可能になります。
命名理由
「透過的コンパレータ」という用語は、STL の N3421 で導入された「ダイヤモンド演算子」の概念に由来しています。透過ファンクターは、連想コンテナーの異種検索機能に不可欠であり、引数を別の演算子に転送します。異なる型の引数を接続できるという点でダイヤモンドに似ているため、「透明なコンパレーター」という名前が付けられています。
以上が透過的コンパレーターはどのように C 14 連想コンテナーを強化しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。