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

std::distance

Материал из cppreference.com
< cpp‎ | iterator

 
 
Iterator библиотеки
Iterator примитивов
Оригинал:
Iterator primitives
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
iterator_traits
input_iterator_tag
output_iterator_tag
forward_iterator_tag
bidirectional_iterator_tag
random_access_iterator_tag
iterator
Iterator адаптеров
Оригинал:
Iterator adaptors
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
reverse_iterator
Поток итераторы
Оригинал:
Stream iterators
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
istream_iterator
ostream_iterator
istreambuf_iterator
ostreambuf_iterator
Iterator операций
Оригинал:
Iterator operations
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
advance
distance
prev(C++11)
next(C++11)
Диапазон доступа
Оригинал:
Range access
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
begin(C++11)
end(C++11)
 
Определено в заголовочном файле <iterator>
template< class InputIt >

typename std::iterator_traits<InputIt>::difference_type

    distance( InputIt first, InputIt last );
Возвращает количество элементов между first и last.
Оригинал:
Returns the number of elements between first and last.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Поведение неопределено, если last не доступен из first по (возможно, неоднократно) увеличивая first.
Оригинал:
The behavior is undefined if last is not reachable from first by (possibly repeatedly) incrementing first.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

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

first -
итератор, указывающий на первый элемент
Оригинал:
iterator pointing to the first element
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
last -
итератор, указывающий на последний элемент
Оригинал:
iterator pointing to the last element
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Требования к типам
-
InputIt должен соответствовать требованиям InputIterator. The operation is more efficient if InputIt additionally meets the requirements of RandomAccessIterator

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

Число элементов между first и last.
Оригинал:
The number of elements between first and last.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

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

Линейные.
Оригинал:
Linear.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Однако, если InputIt дополнительно соответствует требованиям RandomAccessIterator, сложность постоянно.
Оригинал:
However, if InputIt additionally meets the requirements of RandomAccessIterator, complexity is constant.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

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

#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.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

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