overload std :: find for custom classes

时间:2013-03-12 09:49:41

标签: c++ find overloading stl-algorithm

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

这是合法的,“道德的”吗?如果说我有std::vector<std::shared_ptr<myClass> > - 或“偶数”用户定义的容器?或者我应该总是依赖std::find_if来处理这类案件吗?

1 个答案:

答案 0 :(得分:5)

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

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