РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
317 of 815 menu

Функция distance

Функция distance вычисляет расстояние между двумя итераторами, то есть количество шагов от первого итератора до второго. В первый параметр передаётся итератор, обозначающий начало, а во второй - итератор, обозначающий конец. Функция возвращает целое число - количество элементов в диапазоне [first, last). Для итераторов произвольного доступа расстояние вычисляется как разность, а для остальных - путём последовательного увеличения первого итератора до достижения второго.

Синтаксис

#include <iterator> std::distance(first, last);

Пример

Давайте вычислим расстояние между началом и концом вектора:

#include <iostream> #include <vector> #include <iterator> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; cout << distance(vec.begin(), vec.end()) << endl; return 0; }

Результат выполнения кода:

5

Пример

Давайте вычислим расстояние от начала вектора до третьего элемента (итератор на элемент со значением 3):

#include <iostream> #include <vector> #include <iterator> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; auto it = vec.begin() + 2; cout << distance(vec.begin(), it) << endl; return 0; }

Результат выполнения кода:

2

Пример

Давайте вычислим расстояние между двумя итераторами, указывающими на элементы вектора, в обратном порядке:

#include <iostream> #include <vector> #include <iterator> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; auto first = vec.begin() + 1; auto last = vec.begin() + 4; cout << distance(first, last) << endl; return 0; }

Результат выполнения кода:

3

Смотрите также

  • функция advance,
    которая перемещает итератор на заданное число позиций
  • функция next,
    которая возвращает итератор, смещённый вперёд на заданное число позиций
  • функция prev,
    которая возвращает итератор, смещённый назад на заданное число позиций
  • функция begin,
    которая возвращает итератор на первый элемент контейнера
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить