我有一个指向对象QActionDonald的指针向量,我试图找到包含最高期望值_的对象。我已经超载了运营商<我正在使用max_element方法获取最高值的迭代器,但我总是收到不正确的结束值。
QActionDonald.h:
class QActionDonald
{
public:
double expectedvalue_;
bool operator < (const QActionDonald& other) const;
};
QActionDonald.cpp:
bool QActionDonald::operator< (const QActionDonald& other) const
{
return expectedvalue_ < other.expectedvalue_;
}
otherClass:
std::vector<QActionDonald*> *actionList = qValueDictionary[stateKey];
std::vector<QActionDonald*>::iterator it =
std::max_element(actionList->begin(), actionList->end());
答案 0 :(得分:1)
当然不是,因为你的容器有指针,而不是对象。
要使用它,你需要std::vector<QActionDonald>
或者,如果不需要改变的话,为std::max_element
提供一个自定义比较器来应用正确的逻辑(即比较对象,而不是指针) )。