【发布时间】:2018-03-07 09:47:57
【问题描述】:
所以,我需要在 C++ 中找到唯一的四元组。任何想法都会有所帮助
输入 1 : [1, 0, 2, 3], [2, 0, 1, 3], [4, 5, 6, 7], [8, 9, 10, 11]
输出 1 : [2, 0, 1, 3], [4, 5, 6, ,7], [8, 9, 10, 11]
由于 [1,0,2,3] 和 [2,0,1,3] 都包含相同的元素,因此任何一个都可以在输出中
输入 2 : [2, 0, 1, 3], [4, 5, 6, ,7], [8, 9, 10, 11], [15,16,17,18]
输出 2 : [2, 0, 1, 3], [4, 5, 6, ,7], [8, 9, 10, 11], [15,16,17,18]
我无法初始化集合 (int,int,int,int)。知道如何获得独特的吗?
针对要求更多定义问题的人的更新: 四元组是该问题的 4 个整数的组合。问题状态是从所有给定的四元组中找到唯一的四元组。一个四元组 (a,b,c,d) 是唯一的,如果没有其他四元组的所有元素都与这个相同,即由 (a,b,c,d) 的排列形成的任何四元组不是唯一的。四元组 (a,b,c,d) 和 (a,d,b,c) 相同,而四元组 (a,b,c,d) 和 (a,e,f,b) 则不同。如果四元组包含至少 1 个元素,这两个元素都不相同,则它们是唯一的。
【问题讨论】:
-
只需将
std::unique()与一个二元谓词一起使用,如果它们包含“相同的元素”,则它们将两个“四元组”视为相等。 -
@Peter 在调用
std::unique之前必须对元素进行排序 -
独特的四胞胎对是什么意思?我对你作业中的
pair这个词有疑问 -
我理解这个问题。您是否有一位老师限制您可以使用哪些 C++ 和 STL 功能?如果是这样,你是如何受到阻碍的?接下来,向我们展示您迄今为止所做的工作。发布minimal reproducible example。
标签: c++ algorithm unique std-pair