std::advance函数
时间: 2024-04-21 07:27:29 浏览: 118
`std::advance()` 是 C++ 标准库中的一个函数模板,用于在迭代器上进行前进或后退操作。它接受一个迭代器和一个整数参数,将迭代器移动指定的步数。
以下是 `std::advance()` 的函数签名:
```cpp
template <class InputIt, class Distance>
void advance(InputIt& it, Distance n);
```
参数解释:
- `it`:迭代器,表示要移动的位置。
- `n`:要移动的步数,可以是正数或负数。
下面是一个示例,演示如何使用 `std::advance()` 函数:
```cpp
#include <iostream>
#include <vector>
#include <iterator>
int main() {
std::vector<int> myVector = {1, 2, 3, 4, 5};
// 获取第三个元素的迭代器
std::vector<int>::iterator it = myVector.begin();
std::advance(it, 2);
std::cout << "The third element: " << *it << std::endl;
return 0;
}
```
在这个示例中,我们首先创建了一个整数向量 `myVector`,包含了一些整数。然后,我们使用 `begin()` 函数获取向量的起始位置的迭代器,并将其保存在变量 `it` 中。接下来,我们使用 `std::advance()` 函数将迭代器 `it` 前进了 2 步,使其指向向量中的第三个元素。最后,我们使用 `*it` 来访问第三个元素的值,并将其打印出来。
运行这段代码,你会得到以下输出结果:
```
The third element: 3
```
可以看到,`std::advance()` 函数将迭代器 `it` 前进了 2 步,使其指向了向量中的第三个元素。
阅读全文