2
我有这样一个复合数据类型:“不关心”领域
struct Key {
optional<int> a;
optional<int> b;
optional<int> c;
};
我也有一个多集,multiset<Key>
。例如,它包含
{1, 2, 3}
{1, NULL, 3}
{NULL, 2, 3}
{NULL, NULL, 3}
我想获取此多重对象中与{1, 2, 3}
匹配的所有对象。但有一个问题:NULL
字段应该与任何内容匹配。例如,{1, 2, 3}
与{1, NULL, 3}
匹配。
我试图定义一个忽略NULL值的比较器(<
)。例如{1, NULL, NULL} == {NULL, 2, 3}
。但它不遵循弱严格的排序,它给了我错误的结果。
我该怎么做?
你不能。在最糟糕的情况下,您必须获取所有元素。也可能将密钥存储在向量中并尝试匹配每个密钥。 –