C++ 标准库 - <iterator>

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。