使用STL排序功能排序列表 [英] Sort list using STL sort function

查看:163
本文介绍了使用STL排序功能排序列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图按照包含 struct 项目的降序排序列表(类的一部分),但不会编译:

I'm trying to sort a list (part of a class) in descending order containing items of a struct, but it doesn't compile:


错误:'__last - __first'中的'operator-'没有匹配

error: no match for 'operator-' in '__last - __first'


b $ b

sort(Result.poly.begin(), Result.poly.end(), SortDescending());

这里是 SortDescending

struct SortDescending
{
    bool operator()(const term& t1, const term& t2)
    { 
        return t2.pow < t1.pow; 
    }
};

任何人都可以告诉我有什么问题?

Can anyone tell me what's wrong?

推荐答案

标准算法 std :: sort 需要随机访问迭代器, std :: list& :: iterator 不是(列表迭代器是双向迭代器)。

The standard algorithm std::sort requires random access iterators, which std::list<>::iterators are not (list iterators are bidirectional iterators).

您应该使用 std :: list ;> :: sort 成员函数。

这篇关于使用STL排序功能排序列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆