#include <iostream>
#include <set>
#include <string>
using namespace std;
//自定義資料排序
class Person {
public:
Person(string name, int age) {
this->m_Name = name;
this->m_Age = age;
}
string getName() const { return this->m_Name; }
int getAge() const { return this->m_Age; }
private:
string m_Name;
int m_Age;
};
void test04() {
set<Person> sPerson;
Person p1("劉備", 35);
Person p2("曹操", 45);
Person p3("孫權", 40);
Person p4("趙云", 25);
Person p5("張飛", 35);
Person p6("關羽", 35);
sPerson.insert(p1);
sPerson.insert(p2);
sPerson.insert(p3);
sPerson.insert(p4);
sPerson.insert(p5);
sPerson.insert(p6);
for (set<Person>::const_iterator it = sPerson.begin(); it != sPerson.end();
it++)
cout << it->getName() << "," << it->getAge() << endl;
}
int main() {
test04();
return 0;
}
以上代碼編譯不通過,請問問題出在哪里,謝謝.
uj5u.com熱心網友回復:
在set中放入自定義型別Person,可在Person中多載<運算子如下[code=c++]
class Person {
public:
Person(string name, int age) {
this->m_Name = name;
this->m_Age = age;
}
string getName() const { return this->m_Name; }
int getAge() const { return this->m_Age; }
bool operator < (const Person& b) const {
return this->getName() < b.getName();
}
private:
string m_Name;
int m_Age;
};
[/code]
uj5u.com熱心網友回復:
要給Person 定義<運算子 set內部用<對其排序轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/239800.html
標籤:C++ 語言
上一篇:nx二次開發
下一篇:C語言求助
