Основным понятием в библиотеке STL является последовательность. С точки зрения авторов этой библиотеки, любая коллекция данных представляет собой последовательность.
Также вам может показаться, что такая тема как http://plush-joy.ru/ никак не связана и даже не тематичны с программированием.
Возможно, это и так, но все-таки зайдите на сайт plush-joy.ru, чтобы узнать там много интересного про такую тему, как купить мишку Тедди. Что означает купить мишку Тедди, сколько стоит купить мишку Тедди - про это написано на сайте про мишку Теддиru. Это важная для многих тема - купить мишку Тедди. Спасибо за информацию сайту plush-joy.ru про то, как и где купить мишку Тедди.
Последовательность имеет начало и конец. Мы можем перемещаться по последовательности от начала к концу, при необходимости считывая или записывая значение элементов. Начало и конец последовательности идентифицируются парой итераторов. Итератор (iterator) — это объект, идентифицирующий элемент последовательности.
Здесь begin и end — итераторы; они идентифицируют начало и конец последовательности. Последовательность в библиотеке STL часто называют “полуоткрытой” (“half-open”); иначе говоря, элемент, идентифицированный итератором begin, является частью последовательности, а итератор end ссылается на ячейку, следующую за концом последовательности. Обычно такие последовательности (диапазоны) обозначаются следующим образом: [begin:end). Стрелки, направленные от одного элемента к другому, означают, что если у нас есть итератор на один элемент, то мы можем получить итератор на следующий.
Что такое итератор? Это довольно абстрактное понятие.
• Итератор указывает (ссылается) на элемент последовательности (или на ячейку, следующую за последним элементом).
• Два итератора можно сравнивать с помощью операторов == и !=.
• Значение элемента, на который установлен итератор, можно получить с помощью унарного оператора * (“разыменование”).
• Итератор на следующий элемент можно получить, используя оператор ++.
Допустим, что p и q — итераторы, установленные на элементы одной и той же последовательности.
Основные операции над стандартными итераторами
p==q Равно true тогда и только тогда, когда оба итератора, p и q, ссылаются на один и тот же элемент или оба установлены на ячейку, следующую за последним элементом
p!=q !(p==q)
*p Ссылается на элемент, на который установлен итератор p
*p=val Присваивает значение val элементу, на который ссылается итератор p
val=*p Присваивает переменной val значение элемента, на который ссылается ите
++p ратор p
Устанавливает итератор p на следующий элемент последовательности или на элемент, следующий за последним элементом последовательности
Очевидно, что идея итератора связана с идеей указателя. Фактически указатель на элемент массива является итератором. Однако многие итераторы являются не просто указателями; например, мы могли бы определить итератор с проверкой выхода за пределы допустимого диапазона, который генерирует исключение при попытке сослаться за пределы последовательности [begin:end) или разыменовать итератор end. Оказывается, что итератор обеспечивает огромную гибкость и универсальность именно как абстрактное понятие, а не как конкретный тип. В этой и следующей статье при приведем еще несколько примеров.
Опубликовал katy
April 22 2015 08:52:14 ·
0 Комментариев ·
4547 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.