我正在尋找一種聰明/快速的C++算法,當它們包含公共對象時,可以對幾個對象列表進行分組。比方說,我有N個列表,其中一個元素E相關的每片含1..M對象(O):按常用元素分組列表
[O1, O2] -> E1
[O3] -> E2
[O1, O4, O5] -> E3
[O2, O5] -> E4
[O3, O6] -> E5
我希望他們重新安排到以下幾點:
[O1, O2, O4, O5] -> [E1, E3, E4]
[O3, O6] -> [E2, E5]
結果又全部與所有相關元素一起分組的共同對象。列表之間最後沒有共享對象。
那麼,你有什麼嘗試?你如何閱讀你的輸入數據? – 2013-03-19 15:29:41
你有沒有考慮['multimap'](http://en.cppreference.com/w/cpp/container/multimap)?參見[何時使用std :: multimap意義](http://stackoverflow.com/questions/8342445/when-does-using-a-stdmultimap-make-sense) – 2013-03-19 15:34:19