0

std::findオブジェクトのカスタムクラスをオーバーロードすることは可能ですか/「良い」ですか? そして、等値演算子をオーバーロードしません。コンテナーが実際のデータへの (スマート) ポインターを格納しているとします。データ レイアウトやストレージ モードにはあまり興味がなく、特定のデータ メンバーを見つけたいだけです。

これは合法的、「道徳的」ですか?私が持っているとしたら、std::vector<std::shared_ptr<myClass> >またはユーザー定義のコンテナを「でも」持っていますか?std::find_ifそれとも、このような場合は常に頼るべきですか?

4

1 に答える 1

5

慣用的な解決策は、std::find_ifを使用して適切な述語を与えることです。

これにより、記述して維持する必要のあるコードが最小限に抑えられ、特定のコンテナー タイプから切り離されます。

于 2013-03-12T09:51:22.803 に答える