我正在寻找一种聪明/快速的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