使用STL

时间:2016-10-03 16:18:03

标签: c++ boost stl

我有一个属于A和A两个类别中的任何一个的元素列表。 B.每个元素都有一个属性P.要求是属性P对于属于不同类别的任何两个元素不能具有相同的值。我们必须找到共享相同属性值并违反此规则的所有元素集。 使用C ++ STL / boost库实现它的最简单方法是什么?我正在使用gcc 4.8.3。因此,任何需要c ++ 14或更高版本的解决方案都不起作用。

1 个答案:

答案 0 :(得分:1)

对P上的列表进行排序。这将使所有元素具有相同的P。因此,您现在可以遍历列表,并且对于每个相邻的对,检查它们是否具有相同的P并且具有不同的类别。

O(n log n)用于排序,O(n)用于遍历列表并检查。