Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Иттераторы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не параллелипеидальный объёмный массив http://www.cyberforum.ru/cpp-beginners/thread88734.html
Не знаю, где лучше разместить эту тему. В алгоритмах что ли? Или в c++? Подскажите как организовать массивы с декартовыми и криволинейными координатами в пределах тел сложной формы в качестве...
C++ Проверка 3-ех примеров (Решать ничего не нужно) Всем привет! =) У меня такая проблемка,кто сталкивался,или может решить,помогите пожалуйста =) Буду очень признателен! Итак,даны три задачи: 1) Даны натуральные числа n и m. Вычислить:... http://www.cyberforum.ru/cpp-beginners/thread88723.html
C++ Структура. Работа с файлом.
Создать структуру описывающую библиотеку: struct library { char book; //название книги char author; //автор int year; //год издания int pages; //число страниц float price; //цена };
Перегрузка файлового ввода-вывода C++
Здравствуйте! У меня вопрос такой вот: для файлового ввода-вывода сколько надо функций перегружать? столько хватит friend std::ostream & operator<<(std::ostream & os, const Order & o);...
C++ Последовательности пробелов заменнить символом табуляции http://www.cyberforum.ru/cpp-beginners/thread88703.html
нужно написать программу, которая, запросив у пользователя имя входного текстового файла и цену символа “HT- горизонтальный табулятор” (2...8 символьных позиций) формирует выходной текстовый файл...
C++ Не подсчитывает общее количество При разборе простейшей программы возникли затруднения. Код программы: #include <iostream.h> main () { int passes = 0, failures = 0, student = 1, result; while (student <= 10) { подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
23.01.2010, 09:42
Итератор похож на указатель, а не на индекс. В приведённом примере ты со своим итератором занулил бы всю доступную память, пока тебя не остановил бы сбой. Многие итераторы не проверяются, проверять их ты должен сам. В данном случае условие надо было написать как p>=c.begin();
Суть итераторов заключается в том, что они ИМИТИРУЮТ поведение указателей на массиве. Причём имитировать это поведение они могут и на других структурах данных - списках, деревьях и т.д. Таким образом ты можешь единообразно работать с разными по своей природе контейнерами, не заморачиваясь деталями их реализации. Аналогично, при разработке своих контейнеров имеет смысл разработать для них итераторы, имеющие такое же поведение.
Эта идея замечательно развивается в понятии обобщённого программирования (см. хелп по <algorithm>). Сделанные в виде шаблонов функции вроде сортировки или перекидывания части элементов используют этот единообразный способ для того, чтобы работать с разными контейнерами. То есть, одна и та же std::sort способна сортировать и vector, и list, и deque, и твой собственный контейнер, если ты озаботился сделать для него совместимые итераторы.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru