首页 >后端开发 >C++ >如何使用 STL 的排序函数对自定义结构列表进行降序排序?

如何使用 STL 的排序函数对自定义结构列表进行降序排序?

Barbara Streisand
Barbara Streisand原创
2024-11-09 04:44:02818浏览

How to Sort a List of Custom Structs in Descending Order Using STL's Sort Function?

使用 STL 的排序函数对列表进行排序:克服编译错误

在尝试按降序对包含自定义结构体实例的列表进行排序时,遇到了编译错误围绕“结果”列表的“-”运算符不可用。此错误源于排序函数对随机访问迭代器的要求与 std::list::begin() 和 std::list::end() 返回的双向迭代器之间的不匹配。

解决此问题问题,建议使用 std::list::sort 成员函数,该函数专为与双向迭代器一起使用而定制。此函数采用与 std::sort 相同的参数,并在内部采用针对列表优化的排序算法。

以下示例说明了如何针对特定场景使用 std::list::sort 函数:

Result.poly.sort([](const term& t1, const term& t2) {
    return t2.pow < t1.pow;
});

通过此调整,编译错误将得到解决,并且您的代码将根据其组成部分的 'pow' 成员按降序对 'poly' 列表进行排序“术语”元素。

以上是如何使用 STL 的排序函数对自定义结构列表进行降序排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn