Лекция Стандартные итераторы и алгоритмы План


Download 207,3 Kb.
Pdf ko'rish
Sana24.04.2023
Hajmi207,3 Kb.
#1393961
TuriЛекция
Bog'liq
Zadacha2(Контейнеры)



Контейнеры (Коллекции). STL-библиотеки. Классы контейнеров. Линейные 
контейнеры (массив, вектор, очередь, список, список пересылок). 
Ассоциативные и неупорядоченные ассоциативные контейнеры. 
Ассоциативные и неупорядоченные ассоциативные контейнеры Контейнеры 
(Коллекции). STL-библиотеки. Классы контейнеров. Линейные контейнеры 
(массив, вектор, очередь, список, список пересылок). Ассоциативные и 
неупорядоченные ассоциативные контейнеры. Ассоциативные и 
неупорядоченные ассоциативные контейнеры. 
Лекция 5. Стандартные итераторы и алгоритмы 
План 
 
Итераторы и алгоритмы 
 
Итераторы 
 
Алгоритмы 
 
Работа с интервалами 
 
Итераторные адаптеры 
 
Удаление элементов 
 
Функторы 
 
Умные указатели 
1.1 Итераторы 
Итератор - объект, предназначенный для перебора элементов контейнера 
STL (всех или некоторого подмножества). 
Итератор представляет некоторую позицию в контейнере. 
Полуоткрытый интервал обладает двумя достоинствами: 
 
появляется простое условие завершения перебора в контейнере: цикл 
продолжается до тех пор, пока не будет достигнута позиция end() 
 
предотвращается специальная обработка пустых интервалов, поскольку 
в пустом интервале begin() совпадает с end() 
Пример 
using namespace std; 
int main() 

list coll; // Список с символьными элементами 
// Присоединение элементов от 'a' до 'z' 
for (char c='a'; c<='z'; ++c) { 
coll.push_back(c); 

// Вывод содержимого списка 


// - перебор всех элементов. 
list::const_iterator pos; 
for (pos = coll.begin(); pos != coll.end(); ++pos) { 
cout << *pos << ' '; 


Константный итератор 
В каждом контейнере определены два типа итераторов: 
 
контейнер::iterator – используется для перебора элементов в режиме 
чтения/записи (аналог T*) 
 
контейнер::const_iterator – используется для перебора элементов в 
режиме чтения (аналог const T*) 
Инкремент 
// Префиксный инкремент итератора (ХОРОШО!) 
for (pos = coll.begin(); pos != coll.end(); ++pos) {...}
// Постфиксный инкремент итератора (ПЛОХО!) 
for (pos = coll.begin(); pos != coll.end(); pos++) {...}
Категории итераторов 
Двунаправленный итератор - может перемещаться в двух направлениях: в 
прямом (оператор ++) и обратном (оператор --). 
Итераторы 
контейнерных 
классов list, 
set, 
multiset, 
map и multimap являются двунаправленными. 

Download 207,3 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2025
ma'muriyatiga murojaat qiling