注册 登录
编程论坛 C++教室

这个代码为什么在VS里面出错了??

unmain 发布于 2019-08-04 16:56, 1766 次点击
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
3 回复
#2
rjsp2019-08-05 11:02
有时间贴屁用没有的图,没时间贴代码?

回正题,加个 const 吧,我不能理解为什么有人不肯加,但C++17起,C++标准禁止了不加const的叉叉行为。
#3
PandaHero2019-08-09 09:25
set<Student,myCompare>  sc;  改成  set<Student> sc;

或者 < 比较函数 再修改下

[此贴子已经被作者于2019-8-9 09:27编辑过]

#4
PandaHero2019-08-09 09:38
回复 楼主 unmain
程序代码:

class Student
{
public:
    int ID;
    string Name;
    Student(int id=0 , const string& name="null")
        :ID(id),Name(name){}
};

class myCompare
{
public:
    bool operator () (const Student& s1 ,const Student& s2) const
    {
        return s1.ID < s2.ID;
    }

};


int _tmain(int argc, _TCHAR* argv[])
{
    set<Student,myCompare> sc;

    Student s1(10,"小名") ,
            s2(20, "小二");

    sc.insert(s1);
    sc.insert(s2);

    return 0;
}


[此贴子已经被作者于2019-8-9 09:41编辑过]

1