wiki:exam_second

Version 2 (modified by Evgeny Linsky, 8 years ago) (diff)

--

При ответе на любой из вопросов должен быть приведен содержательный (полезная программа) пример.

01. Шаблоны
- решение в стиле C
- шаблонные классы
- шаблонные функции
- специализация шаблонов

02. Исключения
- обработка ошибок в стиле C
- try/catch/throw
- исключения в конструкторах и деструкторах
- идиома RAII
- гарантии исключений

03. Последовательные контейнеры
- string, vector, list, deque
- array, forward_list
- внутреннее устройство и основные операции
- итераторы и их инвалидация

04. Ассоциативные контейнеры
- set, multiset, map, multimap
- unordered_set, unordered_map
- внутреннее устройство и основные операции
- итераторы и их инвалидация

05. Ввод-вывод в С++
- иерархия классов
- методы/флаги/манипуляторы
- обработка ошибок
- overloading

06. Алгоритмы
- функторы
- обзор алгоритмов с примерами
- std::advance
- iterator_traits (value_type, iterator_category)

07. Приведение типов
- static_cast, const_cast, reinterpret_cast
- RTTI и dynamic_cast
- mutable

08. move семантика
- rvalue и lvalue
- rvalue references
- move constructor, move assignment
- std::move

09. Переменное число аргументов 
- переменное число параметров в стиле C (va_arg, va_list, va_start)
- variadic templates

10. С++11. Разное.
- lambda
- auto, decltype
- default, delete, override, final
- initializer_list

11. Метапрограммирование
- решение в стиле C
- type_traits
- enable_if

12. Потоки и мутексы
- зачем нужны потоки?
- конкурентный доступ к переменным
- thread
- mutex, lock_guard

13. Сondition variable
- задача "производитель-потребитель"
- thread и std::bind
- condition_variable