📜  C++ STL中的std :: includes()(1)

📅  最后修改于: 2023-12-03 15:13:56.716000             🧑  作者: Mango

C++ STL中的std::includes()

在C++ STL中,std::includes()函数是用来判断一个容器是否包含另一个容器的函数。

具体地说,std::includes()函数需要接受两个迭代器范围(第一个迭代器范围代表容器A,第二个迭代器范围代表容器B),并检查容器B是否是容器A的子集。

如果容器B是容器A的子集,那么std::includes()函数将返回true,否则返回false。

以下是std::includes()函数的函数原型:

template< class InputIt1, class InputIt2 >
bool includes( InputIt1 first1, InputIt1 last1,
               InputIt2 first2, InputIt2 last2 );

其中,参数first1、last1、first2、last2均是迭代器。

以下是一个例子,展示了如何使用std::includes()函数:

#include <iostream>
#include <algorithm>
#include <vector>
 
int main()
{
    std::vector<int> v1 = {1, 2, 3, 4, 5};
    std::vector<int> v2 = {3, 4};
 
    if (std::includes(v1.begin(), v1.end(), v2.begin(), v2.end())) {
        std::cout << "v1 includes v2" << '\n';
    } else {
        std::cout << "v1 does not include v2" << '\n';
    }
}

在这个例子中,我们首先创建了两个整数向量v1和v2。

然后,我们使用std::includes()函数来检查容器v1是否包含容器v2。由于v2是v1的子集,因此std::includes()函数将返回true,程序输出“v1 includes v2”。

这个例子展示了std::includes()函数的基本用法。请注意,该函数只适用于有序的迭代器区间。否则,函数将不起作用。

总结一下,std::includes()函数是非常有用的STL函数,可以用来判断一个容器是否包含另一个容器。但是,必须注意使用它时的容器范围应该是有序的才能保证正确性。