我对严格的弱排序以及在定义 operator< 时如何使用它感到困惑。我有几个结构:
struct Plane
{
std::string name;
int xrudder;
int yrudder;
int wingwidgets;
bool hasLegacyEngine;
};
struct Airport
{
bool securityCheck;
unsigned __int64 capacity;
std::vector<Plane> planes;
};
我想创建一个std::set
机场。我需要定义 operator< 使用严格的弱排序,但我不知道这意味着什么和/或如何去做。
struct cmpless
{
bool operator()(const Airport& left, const Airport& right)
{
//?
}
};
std::set<Airport, cmpless> airportSet;
一个机场“少于”另一个机场是没有意义的。仅当机场根据其统计数据相等时才有意义。
我如何确定我对 operator< 的定义将遵循严格的弱排序?operator<
在这种情况下,我如何开始考虑定义?
如果可能的话,一个带有解释的例子会很棒!