C++ 算法 includes() 函数
定义和用法
includes()
函数用于检测一个数据范围是否包含另一个数据范围的所有值。如果全部包含则返回布尔值 true,否则返回 false。
注意:两个数据范围都必须是有序的。如果数据未排序,函数可能返回错误结果。
数据范围通过迭代器指定。
实例
检查 vector 中是否包含数值 2、3 和 5:
vector<int> numbers = {1, 7, 3, 5, 3, 9, 2}; vector<int> search = {2, 3, 5}; // 首先对 numbers 进行排序 sort(numbers.begin(), numbers.end()); // 检查 search 中的值是否都被包含 if (includes(numbers.begin(), numbers.end(), search.begin(), search.end())) { cout << "包含所有指定数值"; } else { cout << "不包含所有指定数值"; }
语法
includes(iterator start, iterator end, iterator values_start, iterator values_end);
参数
参数 | 描述 |
---|---|
start | 必需。指向主数据范围起始位置的迭代器。 |
end |
必需。指向主数据范围结束位置的迭代器。 将检测到该位置之前的元素。 |
values_start | 必需。指向待检测值集合起始位置的迭代器。 |
values_end | 必需。指向待检测值集合结束位置的迭代器。 |
技术细节
返回: |
布尔值:
注意:该函数采用线性搜索算法,时间复杂度为 O(n+m),其中 n 和 m 分别是两个数据范围的大小。 |
---|
相关页面
教程:C++ 数据结构
教程:C++ 迭代器
教程:C++ 算法
教程:C++ 布尔值