📅  最后修改于: 2023-12-03 15:05:22.206000             🧑  作者: Mango
std::search_n
是C++标准库中的一个算法,用于查找序列中连续出现n次的值。该算法在C++11中引入,位于头文件<algorithm>
中。
template< class ForwardIt, class Size, class T >
ForwardIt search_n( ForwardIt first, ForwardIt last, Size count, const T& value );
参数说明:
first
:被查找序列的起始位置。last
:被查找序列的结束位置。count
:要查找的连续值的个数。value
:要查找的值。返回值:如果查找成功,返回一个指向找到的第一个匹配元素的迭代器,否则返回last
。
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> vec{ 1, 2, 3, 4, 5, 6, 7, 4, 4, 4, 8, 9 };
auto it = std::search_n(vec.begin(), vec.end(), 3, 4);
if(it != vec.end())
{
std::cout << "Found at position " << std::distance(vec.begin(), it) << std::endl;
}
else
{
std::cout << "Not found" << std::endl;
}
return 0;
}
在上述示例代码中,我们定义了一个名为vec
的容器,其中存储了一些整数。我们使用std::search_n
函数来查找其中连续出现了三个值为4的元素。在本例中,查找成功,因此输出结果为Found at position 7
。
std::search_n
是C++标准库中的一个有用算法,用于查找序列中连续出现n次的值。在大多数情况下,它都可以高效地解决问题。我们建议学习者深入研究C++标准库中包含的算法,以便在实际开发中更加熟练地使用它们。