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}
。但它不遵循弱嚴格的排序,它給了我錯誤的結果。
我該怎麼做?
你不能。在最糟糕的情況下,您必須獲取所有元素。也可能將密鑰存儲在向量中並嘗試匹配每個密鑰。 –