Диапазон (компьютерное программирование)
Эта статья нуждается в дополнительных цитатах для проверки . ( декабрь 2006 г. ) |
В информатике термин «диапазон» может относиться к одной из трех вещей:
- Возможные значения, которые могут храниться в переменной .
- Верхняя и нижняя границы массива .
- Альтернатива итератору .
Диапазон переменной
[ редактировать ]Диапазон переменной задается как набор возможных значений, которые может содержать эта переменная. В случае целого числа определение переменной ограничивается только целыми числами, а диапазон будет охватывать все числа в пределах этого диапазона (включая максимальное и минимальное). Например, диапазон переменной со знаком 16-битной целочисленной — это все целые числа от –32 768 до +32 767.
Диапазон массива
[ редактировать ]Когда массив индексируется численно, его диапазон представляет собой верхнюю и нижнюю границу массива. В зависимости от среды, предупреждение, фатальное исключение если программа попытается получить доступ к элементу массива, находящемуся за пределами диапазона, произойдет или непредсказуемое поведение. В некоторых языках программирования , таких как C , массивы имеют фиксированную нижнюю границу (ноль) и содержат данные в каждой позиции вплоть до верхней границы (поэтому массив из 5 элементов будет иметь диапазон от 0 до 4). В других, таких как PHP , массив может иметь дыры, в которых не определен ни один элемент, и поэтому массив с диапазоном от 0 до 4 будет содержать до 5 элементов (и минимум 2).
Диапазон как альтернатива итератору
[ редактировать ]Другое значение диапазона в информатике — альтернатива итератору . В этом смысле диапазон определяется как «пара итераторов начала/конца, упакованных вместе». [1] Это утверждается [1] что «диапазоны являются превосходной абстракцией» (по сравнению с итераторами) по нескольким причинам, включая лучшую безопасность.
В частности, такие диапазоны поддерживаются в C++20 , [2] Повышение библиотеки C++ [3] и D. стандартная библиотека [4]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Андрей Александреску (6 мая 2009 г.). «Итераторы должны уйти» (PDF) . БустКон 2009 . Проверено 29 июля 2014 г.
- ^ cppreference
- ^ Документация Boost.Range
- ^ D Модуль библиотеки времени выполнения Phobos std.range