使用STL排序函数对列表进行排序
使用STL排序函数对列表进行降序排序时,可能会遇到编译错误如果您的列表包含结构体的项目并且比较器函数未正确定义。错误“no match for 'operator-' in '__last - __first'”表示排序函数无法确定列表中元素的顺序。
出现此问题是因为排序函数需要随机访问迭代器, std::list
要解决此问题,您应该使用 std::list
以下是如何使用 std::list
Result.poly.sort([](const term& t1, const term& t2) { return t2.pow < t1.pow; });
此自定义比较器函数将根据每个结构中的 pow 字段对结构列表进行降序排序。
以上是使用 STL 排序对列表进行降序排序时,为什么会出现''__last - __first' 中的 'operator-' 不匹配”的情况?的详细内容。更多信息请关注PHP中文网其他相关文章!