Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP.doc
Скачиваний:
7
Добавлен:
25.04.2019
Размер:
1.34 Mб
Скачать

Вопросы для самопроверки

  1. Охарактеризуйте назначение и организацию STL.

  2. Какие компоненты входят в состав STL?

  3. Определите понятия контейнера, алгоритма и итератора.

  4. Охарактеризуйте виды контейнеров.

  5. Перечислите шаблоны последовательных контейнеров в STL.

  6. Чем отличаются друг от друга векторы, списки и двухсторонние очереди?

  7. Каково назначение компонентных функций контейнеров begin и end?

  8. Покажите на примере формирование объектов-векторов, объектов-списков и объектов-очередей.

  9. Каким образом можно вставить элемент в вектор, список и очередь? Приведите фрагмент кода.

  10. Покажите, как можно вставить в вектор группу смежных элементов из массива.

  11. Приведите фрагмент кода, который осуществляет вывод элементов списка в поток cout.

  12. Напишите фрагмент программы для соединения двух списков в один.

  13. Какие категории итераторов имеются в STL? Перечислите их в порядке возрастания функциональных возможностей.

  14. Какие операции свойственны входным итераторам и выходным итераторам?

  15. Покажите на примере использование итераторов istream_iterator и ostream_iterator.

  16. Какие новые возможности (операции) отличают однонаправленные и двунаправленные итераторы?

  17. Назовите ограничения при работе с входными и выходными итераторами.

  18. Почему для работы со списками достаточно двунаправленных итераторов, а для работы с векторами требуются итераторы произвольного доступа?

  19. Какой категории итераторов достаточно для алгоритма линейного поиска? Почему бинарный поиск требует от итератора большей функциональности?

  20. Дайте классификацию алгоритмов STL.

  21. Назовите основные немодифицирующие алгоритмы.

  22. Приведите пример линейного поиска значения в списке алгоритмом find_linear.

  23. Каково назначение алгоритма adjacent_find?

  24. Покажите на примере использование алгоритма find_if для поиска элемента в двухсторонней очереди.

  25. Запишите фрагмент кода для вывода элементов списка в поток cout алгоритмом copy.

  26. Какие алгоритмы сортировки применяются в STL?

  27. Охарактеризуйте назначение алгоритмов transform, for_each и accumulate.

  28. Приведите примеры применения алгоритмов из вопроса 27.

  29. Запишите код для проверки четности суммы элементов вектора.

  30. Какие стандартные функторы имеются в STL?

  31. В чем состоит отличие ассоциативных контейнеров от последовательных?

  32. Какие шаблоны ассоциативных контейнеров имеются в STL? Охарактеризуйте каждый из них.

  33. Назовите основные операции, свойственные ассоциативным контейнерам.

  34. Покажите на примере, как создать набор set из строк класса string.

  35. Приведите пример создания отображения map и поиска в нем объекта.

  36. Что понимается под адаптерами?

  37. Какие виды адаптеров введены в STL?

  38. Покажите на примере использование адаптера stack.

  39. Что понимается под реверсивным итератором?

  40. Каково назначение итераторов вставки? Приведите пример их использования.

  41. Какую задачу решают байндеры bind1st и bind2nd?

  42. Используя байндеры, подсчитайте в векторе количество элементов, лежащих в заданном диапазоне.

  43. Охарактеризуйте назначение аллокаторов.

Задачи

  1. Решите задачу 1 из раздела 5, используя в качестве «внутреннего» контейнера множества какой-либо из стандартных контейнеров STL.

  2. Переработайте шаблон задачи 2 из раздела 5 в соответствии с принципами организации контейнеров STL. Покажите совместную работу этого шаблона со стандартными алгоритмами, например find и replace.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]