在尝试按降序对包含自定义结构体实例的列表进行排序时,遇到了编译错误围绕“结果”列表的“-”运算符不可用。此错误源于排序函数对随机访问迭代器的要求与 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中文网其他相关文章!