重载自定义类的std::find

overload std::find for custom classes

本文关键字:find std 自定义 重载      更新时间:2023-10-16

在对象中重载std::find为自定义类是否可能/"好" ?然后不重载相等操作符。假设一个容器存储(智能)指针指向它的实际数据,我真的对数据布局或存储模式不感兴趣,我只想找到某个数据成员....

这样做合法吗?"道德"吗?如果说我有一个std::vector<std::shared_ptr<myClass> > -或"甚至"一个用户定义的容器?或者在这种情况下我应该总是依赖std::find_if吗?

惯用的解决方案是使用std::find_if并给它一个合适的谓词。

这使您必须编写和维护的代码降到最低,并将您与特定的容器类型解耦。