std::distance

来自cppreference.com
< cpp‎ | iterator

 
 
迭代器库

|- class="t-nv-h1"

| colspan="5" |
迭代器原语
原文:
Iterator primitives
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

|-

|- class="t-nv-h1"

| colspan="5" |
迭代器适配器
原文:
Iterator adaptors
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

|-

| |- |

iterator_traits
input_iterator_tag
output_iterator_tag
forward_iterator_tag
bidirectional_iterator_tag
random_access_iterator_tag
iterator
reverse_iterator
move_iterator(C++11)
back_insert_iterator
front_insert_iterator
insert_iterator

|

|-

|- class="t-nv-h1"

| colspan="5" |
流迭代器
原文:
Stream iterators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

|-

istream_iterator
ostream_iterator
istreambuf_iterator
ostreambuf_iterator

|- class="t-nv-h1"

| colspan="5" |
迭代器操作
原文:
Iterator operations
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

|-

advance
distance
prev(C++11)
next(C++11)

|- class="t-nv-h1"

| colspan="5" |
远程接入
原文:
Range access
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

|-

begin(C++11)
end(C++11)
 
在头文件 <iterator> 中定义
template< class InputIt >

typename std::iterator_traits<InputIt>::difference_type

    distance( InputIt first, InputIt last );
返回firstlast之间的元素数量。
原文:
Returns the number of elements between first and last.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
如果last不能由first递增得到,则函数的行为是未定义的。
原文:
The behavior is undefined if last is not reachable from first by (possibly repeatedly) incrementing first.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 参数

first -
迭代器,指向第一个元素
原文:
iterator pointing to the first element
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
last -
迭代器,指向的最后一个元素
原文:
iterator pointing to the last element
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
类型要求
-
InputIt 必须满足 InputIterator 的要求。 The operation is more efficient if InputIt additionally meets the requirements of RandomAccessIterator

[编辑] 返回值

firstlast之间的元素数量。
原文:
The number of elements between first and last.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 复杂度

线性的。
原文:
Linear.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
但是,如果InputIt还满足RandomAccessIterator的要求,则复杂度是常数级的。
原文:
However, if InputIt additionally meets the requirements of RandomAccessIterator, complexity is constant.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 示例

#include <iostream>
#include <iterator>
#include <vector>
 
int main() 
{
    std::vector<int> v{ 3, 1, 4 };
 
    auto distance = std::distance(v.begin(), v.end());
 
    std::cout << distance << '\n';
}

输出:

3

[编辑] 另请参阅

使迭代器前进给定的距离
原文:
advances an iterator by given distance
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]