Программирование. Принципы и практика использования C++ Исправленное издание, стр. 285
2. Какие простые вопросы мы обычно задаем, думая о данных?
3. Перечислите разные способы хранения данных?
4. Какие основные операции можно выполнить с коллекцией данных?
5. Каких принципов следует придерживаться при хранении данных?
6. Что такое последовательность в библиотеке STL?
7. Что такое итератор в библиотеке STL? Какие операции поддерживают итераторы?
8. Как установить итератор на следующий элемент?
9. Как установить итератор на предыдущий элемент?
10. Что произойдет, если вы попытаетесь установить итератор на ячейку, следующую за концом последовательности?
11. Какие виды итераторов могут перемещаться на предыдущий элемент?
12. Почему полезно отделять данные от алгоритмов?
13. Что такое STL?
14. Что такое связанный список? Чем он в принципе отличается от вектора?
15. Что такое узел (в связанном списке)?
16. Что делает функция
insert()erase()17. Как определить, что последовательность пуста?
18. Какие операции предусмотрены в итераторе для класса
list19. Как обеспечить перемещение по контейнеру, используя библиотеку STL?
20. В каких ситуациях лучше использовать класс
stringvector21. В каких ситуациях лучше использовать класс
listvector22. Что такое контейнер?
23. Что должны делать функции
begin()end()24. Какие контейнеры предусмотрены в библиотеке STL?
25. Перечислите категории итераторов? Какие виды итераторов реализованы в библиотеке STL?
26. Какие операции предусмотрены в итераторе с произвольным доступом, но неподдерживаются двунаправленным итератором?
Термины

Упражнения
1. Если вы еще не выполнили задания из врезок ПОПРОБУЙТЕ, то сделайте это сейчас.
2. Попробуйте запрограммировать пример с Джеком и Джилл из раздела 20.1.2. Для тестирования используйте несколько небольших файлов.
3. Проанализируйте пример с палиндромом (см. раздел 20.6); еще раз выполните задание из п. 2, используя разные приемы.
4. Найдите и исправьте ошибки, сделанные в примере с Джеком и Джилл в разделе 20.3.1, используя приемы работы с библиотекой STL.
5. Определите операторы ввода и вывода (
>><<vector6. Напишите операцию “найти и заменить” для класса
Document7. Определите лексикографически последнюю строку в неупорядоченном классе
vector<string>8. Напишите функцию, подсчитывающую количество символов в объекте класса
Document9. Напишите программу, подсчитывающую количество слов в объекте класса
Documentalpha.numericas12b10. Напишите программу, подсчитывающую слова, в которой пользователь мог бы сам задавать набор символов-разделителей.
11. Создайте объект класса
vector<double>list<int>12. Завершите определение класса
listhigh()Link13. На самом деле в классе
listLinkLink (list<Elem>::end())014. Определите односвязный список
sliststd::listslist15. Определите класс
pvector16. Определите класс
ovectorpvector[ ]*17. Определите класс
ownership_vectorpvector18. Определите итератор с проверкой выхода за пределы допустимого диапазона для класса
vector19. Определите итератор с проверкой выхода за пределы допустимого диапазона для класса
list20. Выполните эксперимент, посвященный сравнению временных затрат при работе с классами
vectorlistvector<int>vectorlist<int>listvector