4.5. Операции инкремента и декрементаОперации инкремента (++) и декремента (--) дают возможность компактной и удобной записи для изменения значения переменной на единицу. Чаще всего они используются при работе с массивами и коллекциями – для изменения величины индекса, указателя или итератора: #include <vector> #include <cassert> int main() Выражение // неверно: ошибки с границами индексов в // обоих случаях int ix_vec = 0, ix_ia = 9; while ( ix_vec < 10 ) ivec[ ++ix_vec ] = ia[ --ix_ia ]; значение ix_vec увеличивается на единицу и становится равным 1 до первого использования в качестве индекса. Аналогично ix_ia получает значение 8 при первом использовании. Для того чтобы наша программа работала правильно, мы должны скорректировать начальные значения переменных ix_ivec и ix_ia: // правильно int ix_vec = -1, ix_ia = 10; while ( ix_vec < 10 ) ivec[ ++ix_vec ] = ia[ --ix_ia ]; В качестве последнего примера рассмотрим понятие стека. Это фундаментальная
абстракция компьютерного мира, позволяющая помещать и извлекать элементы в последовательности
LIFO (last in, fist out – последним вошел, первым вышел). Стек реализует две
основные операции – поместить (push) и извлечь (pop). stack[ top++ ] = value; Что делает операция pop? Уменьшает значение вершины (текущая вершина показывает на пустой элемент), затем извлекает значение. Это префиксная форма операции уменьшения: int value = stack[ --top ]; (Реализация класса stack приведена в конце этой главы. Стандартный класс stack рассматривается в разделе 6.16.) Упражнение 4.8Как вы думаете, почему язык программирования получил название С++, а не ++С? Содержание |
Нет комментариев. Оставить комментарий: |