- •Глава 2. Модульное программирование 72
- •Глава 3. Технология создания программ 102
- •Часть II. Объектно-ориентированное программирование 173
- •Глава 4. Классы 178
- •Глава 13. Итераторы и функциональные объекты 328
- •Глава 14. Алгоритмы 343
- •Глава 15. Средства для численных расчетов 369
- •Глава 16. Другие средства стандартной библиотеки 378
- •Часть 1
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •If ( выражение ) оператор_1; [else оператор_2;]
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •If (f) cout « "ХпРезультат return 0;
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Int* p (&а); // то же самое другим способом
- •Часть I. Структурное программирование
- •5 4 2 1 3 // Порядок интерпретации описания
- •56 Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Int b[nstr][nstb]; // описание массива
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Глава 2
- •Глава 2. Модульное программирование
- •Часть I. Структурное программирование
- •Int sum(int a. Int b); // объявление функции
- •Глава 2. Модульное программирование
- •Void print_worker(Worker); //объявление функции
- •Часть I. Структурное программирование
- •Int fl(){return 1;} //правильно
- •Void f2(){return 1;} // неправильно. F2 не должна возвращать значение
- •Глава 2. Модульное программирование
- •Часть I. Структурное программирование
- •Глава 2. Модульное программирование
- •Часть I. Структурное программирование
- •Глава 2. Модульное программирование
- •Часть I. Структурное программирование
- •Глава 2. Модульное программирование
- •Часть I. Структурное программирование
- •Глава 2. Модульное программирование
- •Часть I. Структурное программирование
- •Глава 2. Модульное программирование
- •Часть I. Структурное программирование
- •Глава 2. Модульное программирование
- •Часть I. Структурное программирование
- •92 Часть I. Структурное программирование
- •Глава 2. Модульное программирование 93
- •Часть I. Структурное программирование
- •Глава 2. Модульное программирование
- •Часть I. Структурное программирование
- •Глава 2. Модульное программирование
- •Часть I. Структурное программирование
- •Глава 2. Модульное программирование
- •Void fund (double); // Перегрузка
- •Void func2(int); // Верно (повторное объявление)
- •Часть I. Структурное программирование
- •Глава 2. Модульное программирование
- •Глава 3
- •Глава 3. Технология создания программ
- •Часть I. Структурное программирование
- •Глава 3. Технология создания программ
- •Часть I. Структурное программирование
- •Глава 3. Технология создания программ 107
- •II Комментарий, описывающий,
- •Часть I. Структурное программирование
- •Глава 3. Технология создания программ
- •Часть I. Структурное программирование
- •Глава 3. Технология создания программ
- •Часть I. Структурное программирование
- •Глава 3. Технология создания программ
- •Часть I. Структурное программирование
- •Глава 3. Технология создания программ
- •Часть I. Структурное программирование
- •If(!remove (&pbeg. &pend. 5))cout « "не найден";
- •Глава 3. Технология создания программ
- •Часть I. Структурное программирование
- •Глава 3. Технология создания программ
- •Часть I. Структурное программирование
- •Глава 3. Технология создания программ
- •Часть I. Структурное программирование
- •Глава 3. Технология создания программ
- •Часть I. Структурное программирование
- •Глава 3. Технология создания программ
- •Часть I. Структурное программирование
- •Глава 3. Технология создания программ
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Int f; //.Частота регенерации
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •168 Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть I. Структурное программирование
- •Часть II
- •Часть II. Объектно-ориентированное программирование
- •Часть II. Объектно-ориентированное программирование
- •Часть II. Объектно-ориентированное программирование
- •Часть II. Объектно-ориентированное программирование
- •Глава 4
- •Глава 4. Классы
- •180 Часть II. Объектно-ориентированное программирование
- •Глава 4. Классы
- •Часть II. Объектно-ориентированное программирование
- •Глава 4. Классы
- •Часть II. Объектно-ориентированное программирование
- •Глава 4. Классы
- •Часть II. Объектно-ориентированное программирование
- •Int a::count: // Определение в глобальной области
- •Глава 4. Классы
- •Часть II. Объектно-ориентированное программирование
- •Глава 4. Классы
- •Часть II. Объектно-ориентированное программирование
- •Глава 4. Классы
- •Часть II. Объектно-ориентированное программирование
- •Глава 4. Классы
- •Часть II. Объектно-ориентированное программирование
- •Глава 4. Классы
- •Часть II. Объектно-ориентированное программирование
- •Глава 4. Классы
- •Часть II. Объектно-ориентированное программирование
- •Глава 4. Классы
- •Глава 5
- •Глава 5. Наследование
- •Часть II. Объектно-ориентированное программирование
- •Глава 5. Наследование
- •Часть II. Объектно-ориентированное программирование
- •Глава 5. Наследование
- •Часть II. Объектно-ориентированное программирование
- •Глава 5. Наследование
- •Часть II. Объектно-ориентированное программирование
- •Глава 5. Наследование
- •Часть II. Объектно-ориентированное программирование
- •Глава 6
- •Часть II. Объектно-ориентированное программирование
- •Void add(int d): // Добавление узла в конец списка
- •Глава 6. Шаблоны классов
- •Часть II. Объектно-ориентированное программирование
- •Глава 6. Шаблоны классов
- •Часть II. Объектно-ориентированное программирование
- •Глава 6. Шаблоны классов
- •Часть II. Объектно-ориентированное программирование
- •Глава 6. Шаблоны классов
- •Часть II. Объектно-ориентированное программирование
- •Глава 6. Шаблоны классов
- •Глава 7
- •Глава 7. Обработка исключительных ситуаций
- •Часть II. Объектно-ориентированное программирование
- •Глава 7. Обработка исключительных ситуаций
- •Часть II. Объектно-ориентированное программирование
- •Глава 7. Обработка исключительных ситуаций
- •Часть II. Объектно-ориентированное программирование
- •Глава 7. Обработка исключительных ситуаций
- •230 Часть II. Объектно-ориентированное программирование
- •Глава 8
- •Часть II. Объектно-ориентированное программирование
- •Глава 8. Преобразования типов
- •Часть II. Объектно-ориентированное программирование
- •Глава 8. Преобразование типов
- •Часть II. Объектно-ориентированное программирование
- •Глава 8. Преобразования типов
- •Часть II. Объектно-ориентированное программирование
- •Глава 8. Преобразования типов
- •Часть II. Объектно-ориентированное программирование
- •Глава 9
- •Часть II. Объектно-ориентированное программирование
- •Глава 9. Рекомендации по программированию
- •Часть II. Объектно-ориентированное программирование
- •Глава 9. Рекомендации по программированию
- •Часть II. Объектно-ориентированное программирование
- •Глава 9. Рекомендации по программированию
- •250 Часть II. Объектно-ориентированное программирование
- •Часть II. Объектно-ориентированное программирование
- •254 Часть II. Объектно-ориентированное программирование
- •Часть II. Объектно-ориентированное программирование
- •Часть II. Объектно-ориентированное программирование
- •Часть II. Объектно-ориентированное программирование
- •Часть II. Объектно-ориентированное программирование
- •Часть III
- •Часть III. Стандартная библиотека
- •Глава 10 Потоковые классы
- •Часть III. Стандартная библиотека
- •Глава 10. Потоковые классы
- •Часть III. Стандартная библиотека
- •Глава 10. Потоковые классы
- •Часть III. Стандартная библиотека
- •Глава 10. Потоковые классы
- •Часть III. Стандартная библиотека
- •Глава 10. Потоковые классы
- •Часть III. Стандартная библиотека
- •Глава 10. Потоковые классы
- •Часть III. Стандартная библиотека
- •Глава 10. Потоковые классы
- •Часть III. Стандартная библиотека
- •Глава 10. Потоковые классы
- •Часть III. Стандартная библиотека
- •Часть III. Стандартная библиотека
- •Глава 10. Потоковые классы
- •Часть III. Стандартная библиотека
- •Глава 10. Потоковые классы
- •Глава 11
- •Глава 11. Строки
- •Часть III. Стандартная библиотека
- •Глава 11. Строки
- •Часть III. Стандартная библиотека
- •Глава 11. Строки
- •Часть III. Стандартная библиотека
- •Глава 11. Строки
- •Часть III. Стандартная библиотека
- •Глава 12
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы 317
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Часть III. Стандартная библиотека
- •Глава 12. Контейнерные классы
- •Глава 13
- •Глава 13. Итераторы и функциональные объекты
- •Часть III. Стандартная библиотека
- •Глава 13. Итераторы и функциональные объекты
- •Часть III. Стандартная библиотека
- •Глава 13. Итераторы и функциональные объекты
- •Часть III. Стандартная библиотека
- •Глава 13. Итераторы и функциональные объекты
- •Часть III. Стандартная библиотека
- •Глава 13. Итераторы и функциональные объекты
- •Часть III. Стандартная библиотека
- •Глава 13. Итераторы и функциональные объекты
- •Часть III. Стандартная библиотека
- •Глава 13. Итераторы и функциональные объекты
- •Часть III. Стандартная библиотека
- •Глава 14
- •Часть III. Стандартная библиотека
- •Глава 14. Алгоритмы
- •Часть III. Стандартная библиотека
- •Глава 14. Алгоритмы
- •Часть III. Стандартная библиотека
- •Глава 14. Алгоритмы
- •Часть III. Стандартная библиотека
- •Глава 14. Алгоритмы
- •Часть III. Стандартная библиотека
- •Глава 14. Алгоритмы
- •Часть III. Стандартная библиотека
- •Глава 14. Алгоритмы
- •Часть III. Стандартная библиотека
- •Глава 14. Алгоритмы
- •Часть III. Стандартная библиотека
- •Глава 14. Алгоритмы
- •Часть III. Стандартная библиотека
- •Глава 14. Алгоритмы 361
- •Часть III. Стандартная библиотека
- •Глава 14. Алгоритмы
- •Часть III. Стандартная библиотека
- •Глава 14. Алгоритмы
- •Часть III. Стандартная библиотека
- •Глава 14. Алгоритмы
- •Часть III. Стандартная библиотека
- •Глава 15
- •Часть III. Стандартная библиотека
- •Глава 15. Средства для численных расчетов
- •Часть III. Стандартная библиотека
- •Глава 15. Средства для численных расчетов
- •Часть III. Стандартная библиотека
- •Глава 15. Средства для численных расчетов
- •Часть III. Стандартная библиотека
- •Глава 15. Средства для численных расчетов
- •Глава 16
- •Глава 16. Другие средства стандартной библиотеки
- •Часть III. Стандартная библиотека
- •396 Приложение 5. Константы, макросы и типы данных стандартной библиотеки
- •Int level; // флаг состояния буфера
- •Int bsize; // размер внутреннего буфера
- •I0lbf 1 построчная буферизация текстового файла;
- •400 Приложение 5. Константы, макросы и типы данных стандартной библиотеки
- •402 Приложение 5. Константы, макросы и типы данных стандартной библиотеки
- •404 Приложение 5. Константы, макросы и типы данных стандартной библиотеки
- •406 Приложение 5. Константы, макросы и типы данных стандартной библиотеки
- •446 Приложение 6. Функции стандартной библиотеки
Глава 14. Алгоритмы
365
Таблица 14.4. Алгоритмы работы с множествами и пирамидами
Алгоритм |
Выполняемая функция |
includes |
Включение одного множества в другое |
set_i intersection |
Создание отсортированного пересечения множеств |
set_di fference |
Создание отсортированной последовательности элементов, входящих только в первую из двух поеледовател ьностеи |
set_symmetri c_di fference |
Создание отсортированной последовательности элементов, входящих только в одну из двух последовательностей |
set_union |
Создание отсортированного объединения множеств |
make_heap |
Преобразование последовательности с произвольным доступом в пирамиду |
pop_heap |
Извлечение элемента из пирамиды |
push_heap |
Добавление элемента в пирамиду |
sort_heap |
Сортировка пирамиды |
Рассмотрим эти алгоритмы подробнее.
includes
Алгоритм includes выполняет проверку включения одной последовательности в другую. Результат равен true в том случае, когда каждый элемент последовательности [first2, last2) содержится в последовательности [firstl, lastl)1.
tempiate<class Inl. class In2>
bool includesdnl firstl, Inl lastl. In2 first2. In2 last2); tempiate<class Inl. class In2. class Compare> bool includes (Inl firstl. Inl lastl. In2 first2. In2 last2. Compare comp);
setjntersection
Алгоритм setjntersection создает отсортированное пересечение множеств (то есть множество, содержащее только элементы, входящие и в первое, и во второе множество):
tempiate<class Inl, class In2. class Out> Out setjntersection
(Inl firstl. Inl lastl. In2 first2. In2 last2.
1 Квадратная скобка означает, что соответствующий элемент принадлежит последовательности, круглая — что не принадлежит (указывает на следующий за ней элемент).
366
Часть III. Стандартная библиотека
Out result); tempiate<class Inl, class In2. class Out, class Compare>
Out set_intersection (Inl firstl. Inl lastl.
In2 first2. In2 last2. Out result, Compare comp);
set_difference, set_symmetric_difference
Алгоритм set_difference выполняет копирование в Out элементов, входящих только в первую из двух последовательностей:
tempiate<class Inl, class In2. class Out>
Out set_difference(Inl firstl. Inl lastl.
In2 first2, In2 last2. Out result); tempiate<class Inl, class In2. class Out. class Compare>
Out set_difference (Inl firstl, Inl lastl.
In2 first2. In2 last2, Out result. Compare comp);
Алгоритм set_symmetric_difference выполняет копирование в Out элементов, входящих только в одну из двух последовательностей:
tempiate<class Inl, class In2. class Out>
Out set_symmetric_difference(Inl firstl. Inl lastl. In2 first2. In2 last2, Out result); tempiate<class Inl, class In2, class Out. class Compare> Out set_symmetricjjifference(lnl firstl. Inl lastl.
In2 first2. In2 last2, Out result, Compare comp);
Результирующая последовательность не должна перекрываться ни с одной из исходных.
set_union
Алгоритм set_union создает отсортированное объединение множеств (то есть множество, содержащее элементы первого и второго множества без повторов):
tempiate<class Inl, class In2, class Out> Out set_union(Inl firstl. Inl lastl,
In2 first2, In2 last2, Out result); tempiate<class Inl, class In2, class Out, class Compare> Out set_union(Inl firstl. Inl lastl,
In2 first2, In2 last2. Out result. Compare comp);
Пример использования алгоритмов работы с множествами
#include <iostream> #include <algorithm> using namespace std;
void show(const char *s. const int *begin, const int *end){