Содержание
- 2. Итераторы Для любого итератора реализованы операции: префиксного и постфиксного инкремента (++) присвоения (=) сравнения на равенство
- 3. Категории итераторов
- 4. Действительные и недействительные итераторы Действительный итератор указывает на какой-либо элемент контейнера. Итератор недействителен, если: он не
- 5. Другие разновидности итераторов Обратные итераторы – перечисляют элементы контейнера в обратном порядке for (vector ::reverse_iterator i
- 6. Другие разновидности итераторов (продолжение) Итераторы вставки – позволяют вставлять в контейнер x типа C значения из
- 7. Пример использования итераторов вставки vector vec; for (int i = 0; i vec.push_back(i); back_insert_iterator > bi
- 8. Другие разновидности итераторов (продолжение) Потоковые итераторы – позволяют стандартным алгоритмам использовать потоки ввода/вывода. Определены два шаблонных
- 9. Вместо итераторов можно работать с обычными указателями const int N = 5; int mas [N] =
- 10. Функциональные объемы Функциональные объекты – классы, в которых определена операция вызова (). Везде, где в стандартных
- 11. Виды функциональных объектов Арифметические – позволяют выполнять стандартные арифметические операции Предикаты – функциональные объекты, возвращающие значение
- 12. Арифметические функциональные объекты
- 13. Описание реализации plus внутри STL template struct plus : binary_function { T operator() (const T& x,
- 14. Пример использования унарного функционального объекта negate vector a; //Задаем вектору размер 10 a.resize(10); //Заполняем его значениями
- 15. Предикаты
- 16. Описание реализации equal_to внутри STL template struct equal_to : binary_function { bool operator() (const T& x,
- 17. Отрицатели Шаблонные функции для получения противоположного значения: унарного предиката template unary_negate not1(const Predicate& pred); бинарного предиката
- 18. Пример использования отрицателя vector a; a.resize(10); for (int i = 0; i a[i] = rand() %
- 19. Алгоритмы STL Предназначены для работы с разнообразными контейнерами STL и другими последовательностями Каждый алгоритм реализован в
- 20. Виды алгоритмов не модифицирующие операции с последовательностями модифицирующие операции с последовательностями алгоритмы, связанные с сортировкой алгоритмы
- 21. Общие принципы наименования алгоритмов (алгоритм)_if – алгоритм использует предикат для анализа элементов контейнера (aлгоритм)_n – алгоритм
- 22. Используемые обозначения In – итератор для чтения Out – итератор для записи For – прямой итератор
- 23. Не модифицирующие операции с последовательностями
- 24. adjacent_find – нахождение пары равных соседних значений последовательности С использованием == для сравнения элементов. Возвращаемое значение
- 25. count, count_if – подсчет количества вхождений в последовательность Заданного значения value (==) template difference_type count(In first,
- 26. equal – поэлементное равенство двух последовательностей Поэлементная проверка с использованием == template bool equal(In1 first1, In1
- 27. find, find_if – нахождение первого вхождения в последовательность Значения value (==). Возвращаемое значение – итератор на
- 28. find_first_of – нахождение первого вхождения элементов из одной последовательности в другой С использованием == для проверки
- 29. find_end – нахождение последнего вхождения элементов из одной последовательности в другой С использованием == для проверки
- 30. for_each – вызов функции для каждого элемента последовательности Параметр f – унарная операция template For1 for_each(In
- 31. mismatch – нахождение первого несовпадающего элемента в двух последовательностях Поэлементная проверка с помощью ==. Возвращается пара-структура,
- 32. search– нахождение первого вхождения в последовательность другой последовательности в качестве подпоследовательности С использованием == для сравнения
- 33. search_n – нахождение первого вхождения в последовательность подпоследовательности, состоящей из n значений value С использованием ==
- 34. Модифицирующие операции с последовательностями
- 35. Модифицирующие операции с последовательностями (продолжение)
- 36. copy, copy_backward – копирование элементов последовательности в выходную последовательность Копирование, начиная с первого элемента последовательности. [first,
- 37. fill, fill_n – замена элементов последовательности заданным значением на интервале [first, last). value - значение template
- 38. generate, generate_n – замена элементов последовательности значениями функции-генератора на интервале [first, last). gen – функциональный объект
- 39. iter_swap, swap, swap_ranges – обмен местами двух элементов, заданных итераторами a и b template void iter_swap(For1
- 40. random_shuffle – случайная перестановка элементов последовательности на интервале [first, last) с использованием равномерного распределения template void
- 41. remove, remove_if – перемещение в конец интервала последовательности всех элементов равных value.[first, last) – интервал. Все
- 42. remove_copy, remove_copy_if – перемещение в конец интервала копии последовательности всех элементов Отличаются от предыдущих алгоритмов тем,
- 43. replace, replace_if – замена элементов последовательности равных old_value на значение new_value.[first, last) – интервал. template void
- 44. replace_copy, replace_copy_if – замена элементов в копии последовательности Отличаются от предыдущих алгоритмов тем, что перед обработкой
- 45. reverse, reverse_copy – изменение порядка элементов последовательности на обратный в исходной последовательности. [first, last) – интервал
- 46. rotate, rotate_copy – циклическое перемещение элементов последовательности в исходной последовательности. [first, last) – интервал, middle –
- 47. transform – выполнение операции для каждого элемента исходной последовательности. [first, last) – интервал, op – унарная
- 48. unique – удаление повторяющихся соседних элементов проверка с помощью операции ==. Возвращаемое значение – итератор на
- 49. unique_copy – удаление повторяющихся соседних элементов в копии последовательности Отличаются от предыдущих алгоритмов тем, что перед
- 50. Алгоритмы, связанные с сортировкой
- 51. Алгоритмы, связанные с сортировкой (продолжение)
- 52. Алгоритмы работы с множествами и пирамидами
- 54. Скачать презентацию