c++相同代码,不同电脑,一个报错,一个正常


using namespace std;
#include<iostream>

#include<set>


class mycompare
{
public:
    bool operator()(int v1, int v2)
    {
        return v1 > v2;
    }
};
void test01()
{
    set<int>s1;
    s1.insert(10);
    s1.insert(40);
    s1.insert(20);
    s1.insert(30);
    s1.insert(50);

    //默认从小到大
    for (set<int>::iterator it = s1.begin(); it != s1.end(); it++)
    {
        cout << *it << "   ";
    }
    cout << endl;

    //指定排序规则
    set<int, mycompare>s2;
    s2.insert(10);
    s2.insert(40);
    s2.insert(20);
    s2.insert(30);
    s2.insert(50);

    for (set<int, mycompare>::iterator it = s2.begin(); it != s2.end(); it++)
    {
        cout << *it << "   ";
    }
    cout << endl;
}




int main()
{

    test01();


    system("pause");
    return 0;
}

代码如上
set容器排列
这段代码在同学的电脑上可以运行,我的就报错

img


    bool operator()(int v1, int v2) const { //加上const
        return v1 > v2;
    }