c++11 std::search的用法
时间: 2023-08-14 10:02:58 浏览: 128
C++_String2[1]
C++11中的std::search函数用于在一个范围内搜索一个子序列,并返回第一个匹配的位置。它的用法如下:
```cpp
template<class ForwardIterator1, class ForwardIterator2>
ForwardIterator1 search(ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2);
```
其中,`first1`和`last1`表示要搜索的范围,`first2`和`last2`表示要搜索的子序列。
下面是一个使用std::search函数的示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<int> subsequence = {4, 5};
auto it = std::search(numbers.begin(), numbers.end(), subsequence.begin(), subsequence.end());
if (it != numbers.end()) {
std::cout << "Subsequence found at index: " << std::distance(numbers.begin(), it) << std::endl;
} else {
std::cout << "Subsequence not found" << std::endl;
}
return 0;
}
```
在上面的示例中,我们首先定义了一个包含数字的向量`numbers`和一个子序列`subsequence`。然后,我们使用std::search函数在`numbers`向量中搜索`subsequence`子序列。如果找到了子序列,我们输出它的索引位置;否则,输出"Subsequence not found"。
希望这个示例能够帮助你理解std::search函数的用法。如果还有其他问题,请随时提问!
阅读全文