ソートされたオブジェクトのコレクションへのインターフェイスを作成しています。いつものように、これらの項目をどのようにソートするかはユーザーに任せます。ただし、現在、キーと値のインターフェイス (ソートキーが値から明示的に分離されている) を提供するか、値のみのインターフェイス (値がソートキーでもあるか、ユーザーが別のソートを処理する必要がある) を提供するかで悩んでいます。いくつかの比較関数を渡すことによってキー)。
私の見解では、キーと値のインターフェイスは、ユーザーが常に値とは別のキーを持つことを強制します。それは、ある値が自然に独自のキーを形成する場合でも同様です。ただし、ユーザーからキーを処理する責任がなくなるため、API を使用するときにユーザー コードがよりシンプルでクリーンになる可能性があります。値のみのインターフェイスでは、独自のキーである値をよりコンパクトに表現できますが、キーと値が自然に区別される場合、ユーザーは独自のキーを追跡して処理する必要があります。
もちろん、両方のアプローチをサポートする文献がありますが、古い文献は値のみのアプローチを好む傾向があり、新しい文献はキーと値のアプローチを好む傾向があるように私には思えますが (これについては間違っている可能性があります)。
このような場合のあなたの好みが気になります。どちらか一方が一般的に優先される時点に到達しましたか? そうでない場合、通常は何を使用していますか。また、その理由は何ですか?