【问题标题】:Use function on a number only once对一个数字只使用一次函数
【发布时间】:2021-02-28 11:31:19
【问题描述】:

我有一个问题 - 是否可以让函数只在一个数字上工作一次,以避免重复? 如果一个数组有{1,2,2}

我希望 void(n) 只使用 2 一次

我是否需要使用某些函数从数组中删除重复项,还是有其他方法?

【问题讨论】:

  • 执行此操作的方式将与需要它的代码的特定性质直接相关。如何存储数字,如何迭代数字,诸如仿函数、静态或其他一些潜在实现之类的东西是否合适。答案是肯定的,你可以做到。如何完全取决于您烹饪的食材以及厨房的布置方式。当然,构建一个不重复的副本并进行迭代是可行的。如果它适合你的场景,那就去做吧。
  • 听起来像XY problem。你真正想要达到的目标是什么?
  • 是的,您需要执行某种重复删除步骤。如果订单无关紧要,最好使用unordered_set,否则使用set
  • 假设arrintn_arr 元素的数组,并且所有重复值都是连续的(例如{1,2,2}{2,2,1} 可以,但{2,1,2} 不是)然后@ 987654332@ 会做到的。如果重复值不连续,则先排序arr

标签: c++ c++98


【解决方案1】:

将数组转换为集合。这样可以避免重复。

arr= [1,2,2]
std::unordered_set<int> s;
    for (int i: arr) {
        s.insert(i);
    }

【讨论】:

  • 我需要使用C++ 98版本,集合来自c++ 11
  • @debooger3 具有如此严格和不寻常的约束是您必须在问题中提到的。否则你会浪费写作和回答的人的时间。
猜你喜欢
  • 2017-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 1970-01-01
  • 2019-07-17
  • 2020-09-22
相关资源
最近更新 更多