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 必需。指向待检测值集合结束位置的迭代器。

技术细节

返回:

布尔值:

  • true - 如果主数据范围包含所有待检测值
  • false - 如果至少缺少一个待检测值

注意:该函数采用线性搜索算法,时间复杂度为 O(n+m),其中 n 和 m 分别是两个数据范围的大小。

相关页面

教程:C++ 数据结构

教程:C++ 迭代器

教程:C++ 算法

教程:C++ 布尔值