我是向量的向量,每個向量表示一個集合(在數學意義上)。例如:如何過濾相對於其他元素的矢量元素?
{{1, 3}, {4, 9, 14}, {1, 3}, {1, 4, 8, 9, 10, 14, 16}, {1, 3, 9}, {4, 9, 17, 22}}
我想使能夠過濾的最有效的C++函數可能(在適當位置,如果可能的話)的載體,以便除去包含其他的每個項目。
例如,這裏:
{1, 3}
由{1, 3}
包含和{1, 3, 9}
{4, 9, 14}
由{1, 4, 8, 9, 10, 14, 16}
包含然後將得到的矢量將是:
{{1, 3}, {4, 9, 14}, {4, 9, 17, 22}}
因爲我從C++開始,並不知道如何有效地做到這一點。我在這裏的其他答案中發現了擦除/刪除習慣用法,除了通過擦除閉包作爲謂詞外,這在這裏似乎不太合適。這在C++中看起來不太習慣。
請注意,保持原始順序無關緊要,也不會影響每組中的值的排序。
如果你保持每個向量的排序順序,那麼你應該能夠相當有效地做到這一點。 –
{1,3,9}或{1,3,18}? –
'{1,3,9}',對不起。 – Pierre