用函数排序,没有结果
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();
我想根据到达目的地的最短路径对列表进行排序。
我使用排序功能,所以我从头到尾计算哪条路径是到达下一个敌人的最佳路径。
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();