【发布时间】:2021-02-28 11:31:19
【问题描述】:
我有一个问题 - 是否可以让函数只在一个数字上工作一次,以避免重复?
如果一个数组有{1,2,2}
我希望 void(n) 只使用 2 一次
我是否需要使用某些函数从数组中删除重复项,还是有其他方法?
【问题讨论】:
-
执行此操作的方式将与需要它的代码的特定性质直接相关。如何存储数字,如何迭代数字,诸如仿函数、静态或其他一些潜在实现之类的东西是否合适。答案是肯定的,你可以做到。如何完全取决于您烹饪的食材以及厨房的布置方式。当然,构建一个不重复的副本并进行迭代是可行的。如果它适合你的场景,那就去做吧。
-
听起来像XY problem。你真正想要达到的目标是什么?
-
是的,您需要执行某种重复删除步骤。如果订单无关紧要,最好使用
unordered_set,否则使用set。 -
假设
arr是int和n_arr元素的数组,并且所有重复值都是连续的(例如{1,2,2}或{2,2,1}可以,但{2,1,2}不是)然后@ 987654332@ 会做到的。如果重复值不连续,则先排序arr。