distance()
时间: 2023-06-21 15:18:08 浏览: 100
distance() 函数是 C++ STL 中的一个算法函数,可以用来计算两个迭代器之间的距离,即它们之间相差的元素个数。它的定义如下:
```c++
template <class InputIterator>
typename iterator_traits<InputIterator>::difference_type
distance (InputIterator first, InputIterator last);
```
其中,InputIterator 表示迭代器类型,first 和 last 分别表示区间的起始和结束迭代器。函数返回值为两个迭代器之间的距离,即它们之间相差的元素个数。
需要注意的是,distance() 函数只适用于能够随机访问的迭代器,如 vector、deque、array、string、set、map 等容器的迭代器,对于 list 等只支持双向迭代器的容器,distance() 函数会退化为一个线性的算法,效率较低。
下面是一个示例代码,使用 distance() 函数计算两个向量之间的距离:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec = {1, 2, 3, 4, 5};
auto it1 = vec.begin();
auto it2 = vec.end() - 3;
cout << "距离为: " << distance(it1, it2) << endl;
return 0;
}
```
输出结果为:
```
距离为: 2
```
阅读全文