Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_OOP.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
4 Mб
Скачать
  1. Контейнер list – список

Этот контейнер реализует двунаправленный линейный список, в котором используется последовательный доступ с начала или конца списка. Элемент списка имеет структуру:

В классе имеется 4 конструктора, перегружены операции сравнения и определены 42 член-функции. Так как список двунаправленный, то добавление и удаление выполняется как с начала, так и с конца. Ниже на рисунке приведены основные операции для работы со списком

push_front(значение) – добавить в начало,

push_back(значение) – добавить в конец,

pop_front( ) – удалить с начала,

pop_back( ) – удалить с конца,

insert(итератор,значение) – вставить в середину, место указывается итератором,

erase(итератор) – удалить из середины, место указывается итератором,

front( ) – возвращается значение элемента с начала списка,

back( ) – возвращается значение элемента с конца списка.

Пример. Сортировка прямым выбором: минимальное число находится в исходном списке, удаляется из него и добавляется в новый список

#include <list.h>

#include <iostream.h>

#include <conio.h>

int main(int argc, char* argv[])

{list <int> l1, l2;

int i, k;

cout << "\nlist:";

for(i = 0; i < 10; i++)

l1.push_back(random(30));

list <int> :: iterator pl, pmin;

cout << "\nВывод через Iterator:";

for(pl = l1.begin( ); pl != l1.end( ); pl++)

cout << *pl << ' ';

while (!l1.empty( ))

{pmin = min_element(l1.begin( ),l1.end( )); // из algorithm.h

l2.push_back(*pmin); // добавить в список l2

l1.erase(pmin); // удалить минимум из списка l1

}

cout << "\n rezult: ";

for(pl = l2.begin( ); pl != l2.end( ); pl++)

cout << *pl << ' ';

return 0;

}

4. Контейнер Set – множество

Контейнер Set определяет математическое множество объектов. Основное достоинство класса в том, что во множество не добавляются одинаковые объекты. Добавление во множество, в отличие от предыдущих контейнеров, выполняется функцией класса insert(значение).

Пример. Определить множество различных символов в заданном тексте.

#include <set.h>

#include <string.h>

#include <conio.h>

#include <iostream.h>

int main(int argc, char* argv[])

{set <char> s;

char * ss = “программируйте, улыбаясь!”;

for(int i = 0; i < ss[i]; i++)

s.insert(ss[i]);

set <char> :: iterator ps;

cout << "\nsize set = " << s.size( ); // 20 различных символов

for(ps = s.begin( ); ps != s.end( );ps++) // вывод их, используя итератор

cout << *ps;

return 0;

}

Содержание

Введение. Принципы объектно-ориентированного программирования

Глава 1. Классы и объекты

1. Новые возможности языка С++

1.1. Операция разрешения области видимости ::

1.2. Перечислимый тип.

1.3. Модификатор const

1.4.Новый тип данных – ссылка &.

1.5. Функции в Си++

2. Определение класса. Сокрытие информации.

3. Объект.

4. Конструкторы и деструкторы

4.1.Назначение конструктора

4.2. Конструктор копирования.

4.3. Деструктор

5. Неявный указатель this

6. Перегрузка операций

7. Примеры перегрузки некоторых операций

7.1. Перегрузка операции [ ]

7.2. Перегрузка операции ( )

7.3. Перегрузка операции =

7.4. Перегрузки операций + и +=

7.5. Перегрузка операции ++

7.6. Перегрузка операции (тип)

8. Дружественность

9. Перегрузка операций потокового ввода >> и вывода <<.

10. Массивы объектов.

11. Функции- и классы-шаблоны

11.1 Функции-шаблоны (родовые функции)

11.2. Классы-шаблоны

12. Член-данные класса – объекты другого класса: агрегированные классы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]