【发布时间】:2017-09-21 22:52:48
【问题描述】:
有没有比编写循环更简单的方法来检查每个值是否存在重复项,并在找到向量中的重复项时返回 true?
【问题讨论】:
-
当然:
std::sort()然后std::adjacent_find()。
有没有比编写循环更简单的方法来检查每个值是否存在重复项,并在找到向量中的重复项时返回 true?
【问题讨论】:
std::sort() 然后std::adjacent_find()。
有没有比编写一个循环检查每个重复值并在找到向量中的重复项时返回 true 更简单的方法?
您必须检查向量的每个元素(直到找到重复项),否则您无法知道其中一个未检查的元素是否有重复项。
如果“更简单”是指“更高效”,如果“编写循环”是指两个嵌套循环,那么是的,有一种更有效的方法:首先对向量进行排序,然后仅检查相邻元素。
如果“更容易”是指“我可以避免编写任何循环”,那么可以。上一段中提到的两个步骤(排序和检查相邻元素的等价性)在标准库中都有实现。这些函数被命名为sort 和adjacent_find。
【讨论】: