LClearner 2017-08-06 02:11 采纳率: 50%
浏览 1980
已采纳

c++ 关于sort 函数的问题

错误 10 error C2676: 二进制“-”:“std::_Tree_const_iterator<_Mytree>”不定义该运算符或到预定义运算符可接收的类型的转换 d:\软件\vc\include\algorithm 3806 函数对象1
错误 11 error C2780: “void std::_Sort(_RanIt,_RanIt,_Diff)”: 应输入 3 个参数,却提供了 4 个 d:\软件\vc\include\algorithm 3806 函数对象1

 #include<iostream>
#include<set>
#include<algorithm>
#include<functional>
using namespace std;
int main()
{
    int a[]={1,2,1,3,4,5,8,7};
    set<int> b(a,a+8);
    cout<<b.size()<<endl;

    sort(b.begin(),b.end(),greater<int>());//请问这里有错嘛

    getchar();
    return 0;
}
  • 写回答

2条回答

  • lsh_001 2017-08-06 02:50
    关注

    你无法用STL里的sort算法对容器set作排序。set本身就是一种有序的容器。 set主要用于不常变动的数据,对其数据的变动,只能是删除旧的,然后再插入新的,这点从它的iterator就能看出来,它的iterator是const的。你可以在初始化set的时候,指定比较排序的方法,或者干脆把set转换为其它容器(比如vector),然后再排序。 但无法再装入原来的set,因为原来的set的排序方法已被固化了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误