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 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置