Вход/Регистрация
Программирование. Принципы и практика использования C++ Исправленное издание
вернуться

Страуструп Бьерн

Шрифт:

1. Определите контейнер

map<string,int>
с именем
msi
.

2. Вставьте в него десять пар (имя, значение), например

msi["lecture"]=21
.

3. Выведите пары (имя, значение) в поток

cout
в удобном для вас виде.

4. Удалите пары (имя, значение) из контейнера

msi
.

5. Напишите функцию, считывающую пары из потока

cin
и помещающую их в контейнер
msi
.

6. Прочитайте десять пар из потока ввода и поместите их в контейнер

msi
.

7. Запишите элементы контейнера

msi
в поток
cout
.

8. Выведите сумму (целых) значений из контейнера

msi
.

9. Определите контейнер

map<int,string>
с именем
mis
.

10. Введите значения из контейнера

msi
в контейнер
mis
; иначе говоря, если в контейнере
msi
есть элемент
("lecture",21
), то контейнер mis также должен содержать элемент (
21,"lecture"
).

11. Выведите элементы контейнера

mis
в поток
cout
.

Несколько заданий, касающихся контейнера

vector
.

1. Прочитайте несколько чисел с плавающей точкой (не меньше 16 значений) из файла в контейнер

vector<double>
с именем
vd
.

2. Выведите элементы контейнера

vd
в поток
cout
.

3. Создайте вектор

vi
типа
vector<int>
с таким же количеством элементов, как в контейнере
vd
; скопируйте элементы из контейнера
vd
в контейнер
vi
.

4. Выведите в поток

cout
пары (
vd[i]
,
vi[i]
) по одной в строке.

5. Выведите на экран сумму элементов контейнера

vd
.

6. Выведите на экран разность между суммой элементов контейнеров

vd
и
vi
.

7. Существует стандартный алгоритм reverse, получающий в качестве аргументов последовательность (пару итераторов); поменяйте порядок следования элементов

vd
на противоположный и выведите их в поток
cout
.

8. Вычислите среднее значение элементов в контейнере

vd
и выведите его на экран.

9. Создайте новый контейнер

vector<double>
с именем
vd2
и скопируйте в него элементы контейнера
vd
, которые меньше среднего значения.

10. Отсортируйте контейнер

vd
и выведите его элементы на экран.

Контрольные вопросы

1. Приведите примеры полезных алгоритмов из библиотеки STL?

2. Что делает алгоритм

find
? Приведите по крайней мере пять примеров.

3. Что делает алгоритм

count_if
?

4. Что алгоритм

sort(b,e)
использует в качестве критерия поиска?

5. Как алгоритмы из библиотеки STL получают контейнеры в качестве аргумента ввода?

6. Как алгоритмы из библиотеки STL получают контейнеры в качестве аргумента вывода?

7. Как алгоритмы из библиотеки STL обозначают ситуации “не найден” или “сбой”?

8. Что такое функция-объект?

9. Чем функция-объект отличается от функции?

10. Что такое предикат?

11. Что делает алгоритм

accumulate
?

12. Что делает алгоритм

inner_product
?

13. Что такое ассоциативный контейнер? Приведите не менее трех примеров.

14. Является ли класс

list
ассоциативным контейнером? Почему нет?

15. Сформулируйте принцип организации бинарного дерева.

16. Что такое (примерно) сбалансированное дерево?

17. Сколько места занимает элемент в контейнере

map
?

18. Сколько места занимает элемент в контейнере

vector
?

19. Зачем нужен контейнер

unordered_map
, если есть (упорядоченный) контейнер
map
?

20. Чем контейнер

set
отличается от контейнера
map
?

21. Чем контейнер

multimap
отличается от контейнера
map
?

22. Зачем нужен алгоритм

copy
, если мы вполне могли бы написать простой цикл?

23. Что такое бинарный поиск?

Термины

<
  • Читать дальше
  • 1
  • ...
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: