【发布时间】:2015-11-19 08:06:18
【问题描述】:
class Pass{
string passName;
public:
friend bool sorted(const Pass &lhs, const Pass &rhs);
}
bool sorted(const Pass &lhs, const Pass &rhs)
{
return lhs.passName < rhs.passName;
}
class Agent{
vector <Pass *> listPass;
public:
void sortPass();
}
void Agent::sortPass()
{
vector <Pass*>listSort = listPass;
vector <Pass*>::iterator ptr;
sort (listSort.begin(), listSort.end(), sorted);
for(ptr = listSort.begin(); ptr != listSort.end(); ptr++)
{
(*ptr)->display();
}
}
我可以通过哪些方式按名称对 Pass 列表进行排序?我已经实现了上面的代码,但它不起作用。我收到了从“Pass*”到 const Pass& 的无效用户定义转换错误。
【问题讨论】:
-
你也不见了;在类声明之后。
-
通常将指针存储在向量中并不是最佳做法(除非您对此非常确定),它可能会导致内存泄漏。
标签: c++ sorting vector boolean polymorphism