Пространства имён
Варианты
Действия

std::distance

Материал из cppreference.com

 
 
Iterator библиотеки
Iterator примитивов
Original:
Iterator primitives
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
iterator_traits
input_iterator_tag
output_iterator_tag
forward_iterator_tag
bidirectional_iterator_tag
random_access_iterator_tag
iterator
Iterator адаптеров
Original:
Iterator adaptors
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
reverse_iterator
Поток итераторы
Original:
Stream iterators
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
istream_iterator
ostream_iterator
istreambuf_iterator
ostreambuf_iterator
Iterator операций
Original:
Iterator operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
advance
distance
prev(C++11)
next(C++11)
Диапазон доступа
Original:
Range access
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
begin(C++11)
end(C++11)
 
Заголовочный файл <iterator>
template< class InputIt >

typename std::iterator_traits<InputIt>::difference_type

    distance( InputIt first, InputIt last );
Возвращает количество элементов между first и last.
Original:
Returns the number of elements between first and last.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Поведение неопределено, если last не доступен из first по (возможно, неоднократно) увеличивая first.
Original:
The behavior is undefined if last is not reachable from first by (possibly repeatedly) incrementing first.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Содержание

[править] Параметры

first -
итератор, указывающий на первый элемент
Original:
iterator pointing to the first element
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
last -
итератор, указывающий на последний элемент
Original:
iterator pointing to the last element
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Требования, накладываемые на типы
-
InputIt должен соответствовать требованиям InputIterator. The operation is more efficient if InputIt additionally meets the requirements of RandomAccessIterator

[править] Возвращаемое значение

Число элементов между first и last.
Original:
The number of elements between first and last.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[править] Сложность

Линейные.
Original:
Linear.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Однако, если InputIt дополнительно соответствует требованиям RandomAccessIterator, сложность постоянно.
Original:
However, if InputIt additionally meets the requirements of RandomAccessIterator, complexity is constant.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[править] Пример

#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

[править] См. также

авансы итератор на заданное расстояние
Original:
advances an iterator by given distance
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(функция) [edit]