distance是干什么的
时间: 2024-06-10 09:02:49 浏览: 139
C++中的`distance`是一个STL算法,用于计算两个迭代器之间的距离(即元素个数)。它的函数原型如下:
```cpp
template <class InputIterator>
typename iterator_traits<InputIterator>::difference_type
distance (InputIterator first, InputIterator last);
```
其中,`first`和`last`是表示范围的迭代器,`iterator_traits<InputIterator>::difference_type`是迭代器之间距离的类型,通常是`ptrdiff_t`。
`distance`算法的作用是计算两个迭代器之间的距离,可以用于计算容器中元素的个数,也可以用于计算两个迭代器之间的距离。需要注意的是,`distance`算法只适用于随机访问迭代器,因为只有随机访问迭代器才支持迭代器之间的距离计算。
下面是一个使用`distance`算法计算容器元素个数的例子:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::cout << "The size of vec is: " << std::distance(vec.begin(), vec.end()) << std::endl;
return 0;
}
```
输出结果为:
```
The size of vec is: 5
```
阅读全文