我正在尝试按降序排序列表(类的一部分)包含a的项目struct,但它不编译:
错误:'__last - __first'中'operator-'不匹配
sort(Result.poly.begin(), Result.poly.end(), SortDescending());
Run Code Online (Sandbox Code Playgroud)
这是SortDescending:
struct SortDescending
{
bool operator()(const term& t1, const term& t2)
{
return t2.pow < t1.pow;
}
};
Run Code Online (Sandbox Code Playgroud)
谁能告诉我什么是错的?
我的问题是我们可以使用std :: sort函数对两个std :: lists进行排序吗?我有2个字符串列表
std::list<std::string>list1, list2;
.....//entering values to list
std::sort(list1.begin(), list1.end());
std::sort(list2.begin(), list2.end());
Run Code Online (Sandbox Code Playgroud)
虽然我正在整理这些列表,但我收到了错误.我尝试使用std :: vector,此时排序有效.
错误就像
C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC\include\xutility(1158):请参阅'std :: operator - '1> C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC的声明\ include\algorithm(3642):错误C2784:'_ Base1 :: difference_type std :: operator - (const std :: _ Revranit <_RanIt,_Base>&,const std :: _ Revranit <_RanIt2,_Base2>&)':不能从'std :: _ List_iterator <_Mylist>'1>推导'const std :: _ Revranit <_RanIt,_Base>&'的模板参数1> [1> _Mylist = std :: _ List_val> 1>] …