ここに私の問題があります:std::vector<std::unordered_set<int>>
があります。それらの順序付けられていないセットのいくつかは同じですが、同じ順序ではありません(順序はunordered_setで曖昧です)。重複を削除するには(例えば{1,3,2} == {3,2,1}の数学的意味で)、私はstd::unique()
を使うことを考えましたが、うまくいきません。検索後、私はベクトルのデータをソートする必要があることに気付きましたが、この場合は意味がありません。 std::vector<std::unordered_set<int>>
に重複を削除する機能はありますか?私は自分でそれをすることができます私はstlで何かを逃したかどうかを知りたい。また、別の容器を使ってこの問題を解決する方法を知っていれば教えてください。ここでは効率は大きな問題ではなく、この文脈ではそのベクトルには200以上の要素がありません。std :: unique()をstd :: vectorで使用する<std :: unordered_set <T>>
TLDR; std::vector<std::unordered_set<int>>
で重複を削除するにはどうすればよいですか?
'set 'に' unordered_set'を使用する理由はありますか? 'set'を使用した場合、同じ要素を含む2つのセットは同じ順序になります。 – NathanOliver
O(n^2)時間で重複を削除するには、各配列要素を他の配列要素と(等価のために)比較します。 –