|
Программирование >> Расширенная версия языка c++
Приложение В. Ответы на вопросы и решения упражнений 651 имен серьезно заявила о себе в последнее время благодаря постоянному росту числа и объема библиотек классов сторонних фирм. 2. Чтобы функцию-член сделать постоянной, необходимо за списком параметров функции указать ключевое слово const. Например: int f<int а) con3t; 3. Нет. Модификатор mutable (модифицируемый) позволяет постоянной функции-члену изменить переменную-член. 4. class X { int a, b; public: -. X(int i, int j) { a - = j; } operator int() { return a+b; } 5. Да, это так. 6. Нет. Спецификатор explicit запрещает автоматическое преобразование типа int в тип Demo. Упражнения 14.1 1. Контейнер - это объект, предназначенный для хранения других объектов. Алгоритм - это процедура, предназначенная для работы с содержимым контейнеров. Итератор по отношению к объектам библиотеки стандартных шаблонов действует аналогично указателю. 2. Предикаты бывают бинарными и унарными. 3. Существуют следующие пять типов итераторов: произвольного доступа, двунаправленный, однонаправленный, ввода и вывода. 14.3 , , 2. Для любого объекта, хранящегося в векторе, должен быть определен конструктор по умолчанию. 3.1/ Хранение в векторе объектов класса Coord ♦include <io3tream> linclude <vector> using namespace std; Самоучитель C++ class Coord I public: int x, y; Coord() I x = у = 0; } Coorddnt a, int b) ( X = a; у = b; } J bol r< (Coord a. Coord b) [ return (a.x + a.y) < (b.x -i- b.y); bol M== (Coord a. Coord b) { return (a.x + a.y) == (b.x + b.y); int main ,-1 vector<Coord> v; ... ; int ±; for(i-0; i<10f couW< v[i].x , v[i] .y ; cout endl; for(i=0; Kv.sizeO; H-+) n:-ч,. ,:-;(ti v[i] .X d].x * 2; .; . ..j.,. for (i=0; Kv.sizeO ; + ) cout v[i] .X , v[i].y ; return 0; \ 14.4 2. Основные операции списка ♦include <iostreain> <list> using std; int i -V - : bi . - Приложение В- Ответы на вопросы и решения упражнений 663 list<char> 1st; создание пустого списка int i; for(i=0; i<10; i++) 1st.push back( A + i) ; cou Размер st. size endl; li3t<char>;: iteratorp; cout Содержимое: for(i=0; Klst.sizeO ; i++) { p = 1st.begin () ; cout *p; 1st.pop frontс); lst.push back(*p) ; размещение элемента в конце списка cou- endl; if (! 1st .empty О) cout Список пустым не является \п ; return После выполнения программы на экране появится следующее: Размер =10 Содержимое: ABCDEFGHIJ , , Список ст не является В данной программе элементы поочередно извлекаются из начала списка и размещаются в его конце. Таким образом список никогда не остается пустым. В цикле по выводу на экран содержимого списка с помощью функции size() организуется непрерывный контроль его длины. 3. Слияние двух списков проектов ttinclude <iostream> <list> ttinclude <cstring> using namespace std; class Project { public: char name [40] ; int days to completion; Project 0 { strcpy(name, ); days to completion =0;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |