gpt4 book ai didi

c++ - stable_sort 缺少运算符 - 定义了自定义比较函数

转载 作者:搜寻专家 更新时间:2023-10-31 00:32:58 25 4
gpt4 key购买 nike

我称之为

bool cmpNAME(const PlayerCard& a, const PlayerCard& b){
return (a.Name < b.Name);//Name is std::string
}
list<PlayerCard> tmp;
//fill tmp
stable_sort(tmp.begin(), tmp.end(), cmpNAME);//error at this line

并且编译器给我错误,它缺少 operator- for PlayerCard,但是为什么当我为这个结构定义比较器时

我得到的错误:/usr/include/c++/4.8/bits/stl_algo.h|3508|error: no match for ‘operator-’ (operand types are ‘std::_List_iterator<PlayerCard>’ and ‘std::_List_iterator<PlayerCard>’)|

我想要实现的是比较名称,如果它们相同,则按我将它们插入列表的顺序进行比较

最佳答案

std::stable_sort 需要一个随机访问迭代器。 list 的迭代器不是随机访问的。

使用 std::list::sort .

关于c++ - stable_sort 缺少运算符 - 定义了自定义比较函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com