list<aa*> ldd;
ldd.sort(...); ?
答:
对std::greater进行重载
class aa
{
public:
int _b;
bool operator>(const aa& rhs)const
{
return _b > rhs._b ? true : false;
}
};
template<>
struct std::greater<aa*>
{
bool operator()(const aa* a1, const aa* a2) const
{
return *a1 > *a2;
}
};
std::list<aa*> ldd;
// 初始化列表
...
ldd.sort(std::greater<aa*>()); // 排序
http://www.codeguru.com/columns/forum_highlights/article.php/c6643/
本文介绍了一个使用C++标准模板库(STL)中的list容器和自定义比较器实现的排序示例。通过重载大于运算符和提供std::greater特化版本来实现自定义类型的指针列表排序。
1024

被折叠的 条评论
为什么被折叠?



