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

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

C++ STL-algorithm.search_n()函数

search_n()函数是C++标准库中的STL算法之一,用于在一个序列中查找连续的n个元素的第一个出现位置。

函数定义
template <class ForwardIterator, class Size, class T>
ForwardIterator search_n(ForwardIterator first, ForwardIterator last, Size count, const T& value);
函数参数
  • firstlast:定义要搜索的范围,表示要搜索的范围的开始和结束迭代器
  • count:指定要搜索的元素的连续数量
  • value:指定要搜索的元素的值
函数返回值

如果在指定范围内找到了匹配的连续元素,则返回指向第一个匹配元素的迭代器,否则返回last

示例

以下是一个简单的示例,演示了如何使用search_n()函数查找一个序列中的连续的三个元素2

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

int main()
{
    std::vector<int> vec = { 0, 1, 2, 2, 2, 3, 4, 5 };

    auto it = std::search_n(vec.begin(), vec.end(), 3, 2);

    if (it != vec.end())
    {
        std::cout << "Found at position: " << std::distance(vec.begin(), it) << "\n";
    }
    else
    {
        std::cout << "Not found\n";
    }

    return 0;
}

输出:

Found at position: 2

以上示例中,search_n()函数在vec中查找连续的三个元素2,由于在下标为2的位置找到了这个序列,因此程序输出Found at position: 2

总结
  • search_n()函数用于在一个序列中查找连续的n个元素的第一个出现位置。
  • 函数返回指向第一个匹配元素的迭代器,如果没有找到匹配元素,则返回last
  • 通过使用search_n()函数,可以轻松地搜索特定值的序列。