Содержание
- 2. Алгоритм merge (объединение) Рассмотрим операцию объединения a и b в c : Алгоритм merge можно использовать
- 3. Объединение вектора и массива в список #include #include #include #include #include using namespace std; int merge()
- 4. Замечания Здесь также нужно использовать итератор вставки, если хотим писать в с в режиме вставки. В
- 5. Типы, определенные пользователем Кроме стандартных типов, таких как int, в контейнерах STL можно хранить типы, определенные
- 6. Типы, определенные пользователем // merge2.срр: Объединяем записи, используя // имена в качестве ключей. #include #include #include
- 7. В качестве ключей используются имена int merge2() { entry a[3] = {{10, "Betty"}, {11, "James"}, {80,
- 8. В качестве ключей используются числа Чтобы числа шли в порядке возрастания, их нужно было бы перечислить
- 9. В качестве ключей используются числа Результат: 10 Betty 11 James 16 Fred 20 William Jim Функция
- 10. Категории итераторов Мы можем использовать алгоритм sort (произвольный доступ) для массивов, векторов и двусторонних очередей, но
- 11. Предположим, что i и j - итераторы одного вида. Тогда, основные операции, выполняемые с любым итератором:
- 12. Пусть i – итератор; просмотр элементов контейнера записывается так: for (i = first; i != last;
- 13. Таблица операций, применимых к итераторам х - переменная того же типа, что и элементы рассматриваемого контейнера,
- 14. Категории итераторов Входные (input) итераторы используются для чтения значений из контейнера, аналогично вводу данных из потока
- 15. Категории итераторов Итераторы произвольного доступа (random access) получили, добавив к двунаправленному итератору операции +, -, +=,
- 16. Демонстрация итераторов произвольного доступа: int а[3] = {5, 8, 2}; vector v(a, a+3); vector :: iterator
- 17. Категории итераторов и алгоритмы Алгоритм find требует исключительно тех операций над итераторами, которые определены для входных
- 18. Категории итераторов и алгоритмы Итераторы двунаправленного доступа возвращаются несколькими контейнерами STL: list, set, multiset, map и
- 19. Потоковые итераторы Можно применить алгоритм сору для вывода: #include const int N = 4; int a[N]
- 20. Потоковые итераторы Программа читает из стандартного потока cin числа, вводимые пользователем и дублирует их на экране.
- 21. Операции с итераторами К итераторам произвольного доступа можно применять арифметические операции: int n, dist; // i
- 22. Алгоритм replace replace позволяет найти все элементы с определенным значением в заданном контейнере и заменить их
- 23. Алгоритм reverse reverse позволяет заменить последовательность на обратную ей. Этот алгоритм требует двунаправленных итераторов, которые предоставляют
- 24. Краткие итоги Рассмотрели алгоритмы: 1. merge() – объединение элементов различных контейнеров. merge(a.begin(), a.end(), b, b+6, inserter(c,
- 25. Краткие итоги 2. replace() – замена одних элементов на другие replace (str, str+n, 'b', ‘q'); 3.
- 27. Скачать презентацию