C++ std::distance(first, last) 返回从 first 走到 last 需要前进的步数。随机访问迭代器是常数时间,单向迭代器须线性走一遍。
原型
template<class It>
typename iterator_traits<It>::difference_type
distance(It first, It last);参数
first、last:同一序列上的两个迭代器,last须能从first到达。
返回值
元素个数,类型通常为带符号的差值类型。
示例
#include <iostream>
#include <iterator>
#include <vector>
int main() {
std::vector<int> v{1, 2, 3, 4};
std::cout << std::distance(v.begin(), v.end()) << "\n";
return 0;
}输出:
4
注意事项
对 vector 等价于 end - begin。不要对无关的两个迭代器求距离。
本头文件到此结束。可返回iterator 总览或进入cctype。