错误 C2678 二进制 : 没有找到接受const _Ty类型的左操作数的运算符
c++新手一个,今天使用STL中的set二叉树存储数据,结果提示了如上错误,后来意识到二叉树存放数据需要进行数据比较,是不是没有比较依据造成的?
另外编写了测试代码进行测试,验证了这个猜想,果真如此。
#include <iostream>
#include <stdlib.h>
#include <set>
using namespace std;
class Person
{
public:
Person(string name,int age):mName(name), nAge(age){}
string mName;
int nAge;
};
class mycompare {
public:
bool operator()(Person p1, Person p2)const {
return p1.nAge < p2.nAge;
}
};
int main()
{
set<Person,mycompare>* dst = new set<Person,mycompare>;
Person p1("p1", 10);
Person p2("p2", 11);
Person p3("p3", 12);
dst->insert(p1);
dst->insert(p2);
dst->insert(p3);
for (set<Person, mycompare>::iterator it = dst->begin(); it != dst->end(); it++)
{
cout << (*it).mName << endl;
}
system("pause");
return 0;
}