stringtranslate.com

Диапазон (компьютерное программирование)

В информатике термин «диапазон» может относиться к одному из трех понятий:

  1. Возможные значения, которые могут быть сохранены в переменной .
  2. Верхняя и нижняя границы массива .
  3. Альтернатива итератору .

Диапазон переменной

Диапазон переменной задается как набор возможных значений, которые может содержать эта переменная. В случае целого числа определение переменной ограничено только целыми числами, а диапазон будет охватывать все числа в пределах своего диапазона (включая максимум и минимум). Например, диапазон знаковой 16 -битной целой переменной — это все целые числа от −32 768 до +32 767.

Диапазон массива

Когда массив численно индексирован, его диапазон — это верхняя и нижняя границы массива. В зависимости от среды, возникнет предупреждение, фатальное исключение или непредсказуемое поведение, если программа попытается получить доступ к элементу массива, который находится за пределами диапазона. В некоторых языках программирования , таких как C , массивы имеют фиксированную нижнюю границу (ноль) и будут содержать данные в каждой позиции до верхней границы (поэтому массив с 5 элементами будет иметь диапазон от 0 до 4). В других, таких как PHP , массив может иметь дыры, где не определен ни один элемент, и поэтому массив с диапазоном от 0 до 4 будет иметь до 5 элементов (и минимум 2).

Диапазон как альтернатива итератору

Другое значение range в информатике — альтернатива iterator . При использовании в этом смысле range определяется как «пара итераторов begin/end, упакованных вместе». [1] Утверждается [1] , что «диапазоны — это более совершенная абстракция» (по сравнению с итераторами) по нескольким причинам, включая лучшую безопасность.

В частности, такие диапазоны поддерживаются в C++20 , [2] библиотеках Boost C++ [3] и стандартной библиотеке D. [4]

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

Ссылки

  1. ^ ab Андрей Александреску (6 мая 2009 г.). "Итераторы должны уйти" (PDF) . BoostCon 2009 . Получено 29 июля 2014 г. .
  2. ^ cppreference
  3. ^ Документация Boost.Range
  4. ^ D Phobos Runtime Library std.range module