C++ 算法 includes()

2024年8月30日 | 阅读4分钟

C++ 算法 includes() 函数返回 true,如果排序范围 [first2, last2) 中的每个元素都可以在排序范围 [first1, last1) 中找到。

如果 [first2, last2) 为空,它也返回 true。

对于第一个版本,使用运算符 < 比较元素,或者对于第二个版本,使用给定的二元比较函数 comp 比较元素。

语法

参数

first1:一个输入迭代器,指向第一个排序源序列中的第一个元素,用于测试第二个序列的所有元素是否都包含在第一个序列中。

last1:一个输入迭代器,指向第一个排序源序列中最后一个元素的下一个位置,用于测试第二个序列的所有元素是否都包含在第一个序列中。

first2:一个输入迭代器,指向第二个排序源序列中的第一个元素,用于测试第二个序列的所有元素是否都包含在第一个序列中。

last2:一个输入迭代器,指向第二个排序源序列中最后一个元素的下一个位置,用于测试第二个序列的所有元素是否都包含在第一个序列中。

comp:一个用户定义的二元谓词函数,接受两个参数,如果这两个参数有序则返回true,否则返回false。它遵循严格的弱排序来对元素进行排序。

返回值

如果 [first2, last2) 中的每个元素都是 [first1, last1) 的成员,则此函数返回 true,否则返回 false。

复杂度

复杂度与 [first1, last1) 和 [first2, last2) 之间的距离呈线性关系:执行最多 2*(count1+count2)-1 次比较。其中 count1 = last1- first1,count2 = last2- first2。

数据竞争

访问范围 [first1, last1) 和 [first2. last2) 中的对象。

异常

如果任何元素比较或迭代器上的操作抛出异常,此函数将抛出异常。

注意:无效参数会导致未定义行为。

示例 1

让我们看一个简单的例子来演示 includes() 的用法

输出

true
false

示例 2

让我们看另一个简单示例

输出

a b c f h x 
includes:
a b c : true
a c : true
g : false
a c g : false
A B C : (case-insensitive) true

示例 3

让我们看另一个简单示例

输出

container includes continent!
container includes continent!

示例 4

让我们看一个简单的例子

输出

User has won lottery ( all numbers are lottey numbers )

下一主题C++ 算法