用函数排序,没有结果

Sorting with a function , no result

我想根据到达目的地的最短路径对列表进行排序。

我使用排序功能,所以我从头到尾计算哪条路径是到达下一个敌人的最佳路径。

std::vector<std::shared_ptr<Enemy>> ek = model->getAllEnemies();
std::sort( ek.begin(), ek.end(), customLess);

将其更改为结构:

struct {
        bool operator()(const std::shared_ptr<Enemy> &e, const std::shared_ptr<Enemy> &nexthp)
        {
            int pathcost = findPathfindingNodes(e->getXPos(), e->getYPos(),true);
            int pathcost2 = findPathfindingNodes(nexthp->getXPos(), nexthp->getYPos(),true);
            return pathcost < pathcost2;
        }
    } customLess;

但是当我想使用在同一个 .cpp 文件中声明的 findpathfindingnodes 函数时,它给出了一个错误:

/controller.cpp:235: error: 'findPathfindingNodes' was not declared in this scope
             int pathcost = findPathfindingNodes(e->getXPos(), e->getYPos(),true);

只需包含具有该功能的 class...

class SomeClass
{
    public:
        SomeClass();
        int findPathfindingNodes();
}

然后无论您想在何处使用它,请确保您已包含 class #include "SomeClass"

然后创建它的实例并调用函数

SomeClass instance_of_some_class();
int result = instance_of_some_class.findPathfindingNodes();