那么std::find
对象中的自定义类是否有可能/“好”重载?然后不重载相等运算符。假设一个容器存储(智能)指向它的实际数据的指针,我真的对数据布局或存储模式不感兴趣,我只想找到某个数据成员....
这是否合法,“道德”?如果说我有一个std::vector<std::shared_ptr<myClass> >
- 或“甚至”用户定义的容器?还是我应该始终依赖std::find_if
此类情况?
那么std::find
对象中的自定义类是否有可能/“好”重载?然后不重载相等运算符。假设一个容器存储(智能)指向它的实际数据的指针,我真的对数据布局或存储模式不感兴趣,我只想找到某个数据成员....
这是否合法,“道德”?如果说我有一个std::vector<std::shared_ptr<myClass> >
- 或“甚至”用户定义的容器?还是我应该始终依赖std::find_if
此类情况?
惯用的解决方案是使用std::find_if并给它一个合适的谓词。
这将您必须编写和维护的代码保持在最低限度,并将您与特定容器类型分离。