标签: c++ find overloading stl-algorithm
对象中的自定义类重载std::find是否可能/“好”?然后不重载相等运算符。说一个容器存储(智能)指向它的实际数据,我真的对数据布局或存储模式不感兴趣,我只是想找到一个特定的数据成员....
std::find
这是合法的,“道德的”吗?如果说我有std::vector<std::shared_ptr<myClass> > - 或“偶数”用户定义的容器?或者我应该总是依赖std::find_if来处理这类案件吗?
std::vector<std::shared_ptr<myClass> >
std::find_if
答案 0 :(得分:5)
惯用解决方案是使用std::find_if并为其提供合适的谓词。
这使您必须编写和维护的代码保持最小,并使您与特定的容器类型分离。