【发布时间】:2012-07-03 19:08:12
【问题描述】:
我有一个密钥类型:
struct KeyT {
uint32_t timestamp;
// example!
uint32_t a;
uint32_t b;
uint32_t c;
uint32_t d;
uint32_t e;
// ...
bool operator== (const KeyT& key) const
{
if(timestamp == key.timestamp && a == key.a && b == key.b && d == key.d && c == key.c && e == key.e)
return true;
return false;
}
bool operator< (const KeyT& key) const
{
if(timestamp < key.timestamp)
return true;
else if(timestamp == key.timestamp && a < key.a && b < key.b && c < key.c && d < key.d && e < key.e)
return true;
else if(timestamp == key.timestamp && a == key.a && b < key.b && c < key.c && d < key.d && e < key.e)
return true;
else if(timestamp == key.timestamp && a == key.a && b == key.b && c < key.c && d < key.d && e < key.e)
return true;
else if(timestamp == key.timestamp && a == key.a && b == key.b && c == key.c && d < key.d && e < key.e)
return true;
else if(timestamp == key.timestamp && a == key.a && b == key.b && c == key.c && d == key.d && e < key.e)
return true;
// ..
return false;
}
};
现在,我并不真正关心成员变量 a、b、c、d、e 的排序,我唯一要确保的是地图按时间戳排序。我也刚刚意识到,如果我有两个 KeyT 实例一,二,除了“d”之外一切都相同,那么一
谢谢!
【问题讨论】:
-
如果你有相同的项目,那么“一
-
它们不相同,只是成员变量d不同。