overload std :: find for custom classes

pau*_*l23 0 c++ overloading find stl-algorithm

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

这是合法的,"道德的"吗?如果说我有std::vector<std::shared_ptr<myClass> >- 或"甚至"用户定义的容器?或者我应该总是依赖std::find_if这些案件?

jua*_*nza 5

惯用的解决方案是使用std :: find_if并为其提供合适的谓词.

这使您必须编写和维护的代码保持最小,并使您与特定容器类型分离.