【发布时间】:2017-09-14 23:25:07
【问题描述】:
在班级管理器中,我有这些方法:
void Manager::SortElementsById()
{
sort(world->GetElements().begin(), world->GetElements().end(), compareById);
}
bool compareById(const Element* element1, const Element* element2)
{
return element1->Id < element2->Id;
}
world 是指向 World 类对象的指针。类世界包含:
vector<Element*> elements;
vector<Element*> World::GetElementss()
{
return this->elements;
}
类元素包含:
int Id;
我有两个问题:
为什么它不起作用?我有以下错误:“错误 C2065 'compareById': 未声明的标识符”
最终,我希望将 Id(在 Element 类中)设为私有,并通过公共方法 GetId() 返回这些字段的值。当我想在 const 对象上执行此方法时这是非法的,所以我不知道在这些条件下如何对这些向量进行排序。
【问题讨论】:
标签: c++ sorting pointers object vector