📜  C++ STL-algorithm.include()函数(1)

📅  最后修改于: 2023-12-03 14:59:45.492000             🧑  作者: Mango

C++ STL algorithm.include()函数介绍

简介

C++ STL中的algorithm.include()函数用于判断一个序列是否是另一个序列的子序列。该函数返回一个bool类型的值,用于判断其中一个序列是否完全包含另一个序列。

头文件

该函数所在的头文件为

#include <algorithm>
函数签名

该函数的签名如下所示:

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

其中,参数说明为:

  • first1, last1 - 一个迭代器范围,代表待搜索序列的起始和终止位置。
  • first2, last2 - 另一个迭代器范围,代表要搜索的子序列的起始和终止位置。
返回值

该函数返回一个bool类型的值:

  • 如果第二个序列是第一个序列的子序列,则返回true;
  • 否则返回false。
示例

下面是一个简单的示例,说明如何使用该函数:

#include <iostream>
#include <algorithm>
#include <vector>

int main()
{
    std::vector<int> v1{1, 2, 3, 4, 5, 6, 7, 8, 9};
    std::vector<int> v2{3, 4, 5};

    if (std::includes(v1.begin(), v1.end(),
                      v2.begin(), v2.end()))
    {
        std::cout << "v2 is a subsequence of v1." << std::endl;
    }
    else
    {
        std::cout << "v2 is not a subsequence of v1." << std::endl;
    }

    return 0;
}

输出结果为:

v2 is a subsequence of v1.
注意事项
  • 输入的序列必须是有序的,否则该函数的输出结果将是不确定的;
  • 当第二个序列为空时,该函数将返回true;
  • 该函数的时间复杂度为O(N),其中N为第一个序列的长度。