0

我有一个指向对象 QActionDonald 的指针向量,我试图找到包含最高期望值的对象。我已经重载了 operator< 并且我正在使用 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_;
}

其他类:

std::vector<QActionDonald*> *actionList =  qValueDictionary[stateKey];

        std::vector<QActionDonald*>::iterator it = 
std::max_element(actionList->begin(), actionList->end());
4

1 回答 1

1

当然不是,因为你的容器有指针,而不是对象。

要使用它,您需要std::vector<QActionDonald>或者,如果这不会发生变化,则需要提供一个自定义比较器来std::max_element应用正确的逻辑(即比较对象,而不是指针)。

于 2012-12-06T01:07:37.973 回答