План лекций по курсу Стандартная библиотека C++ 2009/10
Лекция 1 (01.09.09)
Шаблоны функций (на примере max). Где их определять. Два этапа компиляции шаблона. Мощь и проблемы шаблонов C++, пути решения. Специализация шаблона, инстанцирование, выведение. max(2.3,5). Способы решения проблемы: введение в шаблон дополнительных типов (плохо) и явное указание параметров шаблона (хорошо). Явная специализация шаблона для char*.
Алгоритм выбора версии перегруженной функции.
Полезные шаблоны функций. copy, find, find_if, foreach.
Диапазон. Понятие. Удобство диапазонов. Проблемы диапазонов.
Особенности стандартной библиотеки шаблонов:
- отсутствие наследования;
- итераторы, диапазоны итераторов;
- незащищенность кода на этапе выполнения.
Лекция 2 (15.09.09)
Контейнеры стандартной библиотеки: vector, list, stack, queue, dequeue, priorityqueue, set, map, multiset, multimap
Стоимость основных операций в контейнерах.
Понятие итератора контейнера. Реализация итераторов для вектора и списка. Представление о реализации итератора для множества.
Общие контейнерные операции (по листику).