C++ 对象的比较器运算符,用于将其存储在映射中
我有以下课程C++ 对象的比较器运算符,用于将其存储在映射中,c++,stl,comparator,stdmap,C++,Stl,Comparator,Stdmap,我有以下课程 class Person { string name; string section; }; 比较器运算符的实现可以是什么来将其存储在映射中?一种可能的实现是: class Person { string name; string section; }; bool operator<(const Person& lhs, const Person& rhs) { return lhs.name < rhs.name; } 班
class Person
{
string name;
string section;
};
比较器运算符的实现可以是什么来将其存储在映射中?一种可能的实现是:
class Person
{
string name;
string section;
};
bool operator<(const Person& lhs, const Person& rhs) {
return lhs.name < rhs.name;
}
班级人员
{
字符串名;
弦段;
};
布尔运算符可能类似于
#include <tuple> // for std::tie
struct ComparePersons
{
bool operator()(const Person& lhs, const Person& rhs) const
{
return std::tie(lhs.name, lhs,section) < std::tie(rhs.name, rhs.section);
}
};
#包括//用于std::tie
结构比较器
{
布尔运算符()(常数人和左侧、常数人和右侧)常数
{
返回std::tie(左S.name,左S,section)
使用名称
第一个和部分
第二个,执行字典式的小于比较。显然,这假设您对使用Person
s作为地图的键感兴趣。您想如何订购它们?