Программирование >>  Расширенная версия языка c++ 

1 ... 212 213 214 [ 215 ] 216 217 218 ... 227


Приложение В. Ответы на вопросы и решения упражнений 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;



1 ... 212 213 214 [ 215 ] 216 217 218 ... 227

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика