Программирование. Принципы и практика использования C++ Исправленное издание, стр. 251
3.5. Скопируйте значения из массива, являющегося аргументом функции, в массив, расположенный в свободной памяти.
3.6. Выведите на печать элементы массива, расположенного в свободной памяти.
3.7. Удалите массив из свободной памяти.
4. В функции
main()4.1. Вызовите функцию
f()ga4.2. Определите массив
aa4.3. Вызовите функцию
f()aaЗадание со стандартным вектором
1. Определите глобальный вектор
vector<int> gv2. Определите функцию
f()vector<int>3. В функции
f()3.1. Определите локальный вектор
vector<int> lv3.2. Скопируйте значения из вектора
gvlv3.3. Выведите на печать элементы вектора
lv3.4. Определите локальный вектор
vector<int> lv23.5. Выведите на печать элементы вектора
lv24. В функции
main()4.1. Вызовите функцию
f()gv4.2. Определите вектор
vector<int> vv4.3. Вызовите функцию
f()vvКонтрольные вопросы
1. Что означает выражение “Покупатель, будь бдителен!”?
2. Какое копирование объектов класса используется по умолчанию?
3. Когда копирование объектов класса, используемое по умолчанию, является приемлемым, а когда нет?
4. Что такое конструктор копирования?
5. Что такое копирующее присваивание?
6. В чем разница между копирующим присваиванием и копирующей инициализацией?
7. Что такое поверхностное копирование? Что такое глубокое копирование?
8. Как копия объекта класса vector сравнивается со своим прототипом?
9. Перечислите пять основных операций над классом.
10. Что собой представляет конструктор с ключевым словом
explicit11. Какие операции могут применяться к объекту класса неявно?
12. Что такое массив?
13. Как скопировать массив?
14. Как инициализировать массив?
15. Когда передача указателя на аргумент предпочтительнее передачи его по ссылке и почему?
16. Что такое строка в стиле С, или С-строка?
17. Что такое палиндром?
Термины

Упражнения
1. Напишите функцию
char* strdup(const char*)*2. Напишите функцию
char* findx(const char* s, const char* x)xs3. Напишите функцию
int strcmp(const char* s1, const char* s2)s1s2s1s2*4. Что случится, если передать функциям
strdup()findx()strcmp()char*5. Напишите функцию
string cat_dot(const string& s1, const string& s2)cat_dot("Нильс", "Бор")Нильс.Бор6. Модифицируйте функцию
cat_dot()7. Напишите варианты функции
cat_dot()delete8. Перепишите все функции, приведенные в разделе 18.6, используя для сравнения обратную копию строки; например, введите строку "
homeemoh9. Проанализируйте схему распределения памяти, описанную в разделе 17.4. Напишите программу, сообщающую, в каком порядке выделяется статическая память, стек и свободная память. В каком направлении растет стек: в сторону старших или младших адресов? Допустим, массив расположен в свободной памяти. Какой элемент будет иметь больший адрес — с большим индексом или с меньшим?