【问题标题】:C++ return true if duplicates in a type int vector is found如果找到类型 int 向量中的重复项,则 C++ 返回 true
【发布时间】:2017-09-21 22:52:48
【问题描述】:

有没有比编写循环更简单的方法来检查每个值是否存在重复项,并在找到向量中的重复项时返回 true?

【问题讨论】:

  • 当然:std::sort() 然后std::adjacent_find()

标签: c++ vector boolean


【解决方案1】:

有没有比编写一个循环检查每个重复值并在找到向量中的重复项时返回 true 更简单的方法?

您必须检查向量的每个元素(直到找到重复项),否则您无法知道其中一个未检查的元素是否有重复项。

如果“更简单”是指“更高效”,如果“编写循环”是指两个嵌套循环,那么是的,有一种更有效的方法:首先对向量进行排序,然后仅检查相邻元素。

如果“更容易”是指“我可以避免编写任何循环”,那么可以。上一段中提到的两个步骤(排序和检查相邻元素的等价性)在标准库中都有实现。这些函数被命名为sortadjacent_find

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 2014-02-04
    • 1970-01-01
    • 2015-02-14
    • 2015-06-19
    • 2020-07-01
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    相关资源
    最近更新 更多