Содержание
- 2. Итераторы В итераторах есть понятия «текущий элемент», «указать на следующий элемент» Доступ к текущему элементу *
- 3. Типы итераторов
- 4. Итератор может быть Действительным или недействительным Итератор не был инициализирован Контейнер, с которым связан итератор, уничтожен
- 5. distance (InputIterator first, InputIterator last); Возвращает разность между двумя итераторами void advance (InputIterator & i, Distance
- 6. reverse_iterator * , - >, ++, - -, +, -, +=, -=, [ ] current =
- 7. back_insert_iterator front_insert_iterator insert_iterator back_inserter( C& x); front_inserter (C& x); Inserter (C& x, Iter i); Итераторы вставки
- 8. Потоковые итераторы Итератор входного потока istream_iterator Итератор выходного потока ostream_iterator
- 9. Итератор входного потока Читает элементы из потока istream in («temp»); istream_iterator i(in); int buf= *i; ++i;
- 10. Особенность итераторов входного потока Из i = = j не следует ++ i = = ++
- 11. Итераторы выходного потока Записывают с помощью ostream_iterator os (cout, «кг»); *os=100; ++os; *os= 2;
- 12. Функциональные объекты Класс, в котором определена операция вызова функции Используются в качестве параметров стандартных алгоритмов для
- 13. Шаблоны базовых классов template struct unary_function { typedef Arg argument_type; typedef Result result_type; }; template typedef
- 14. Адаптеры функций Функция, которая получает в качестве аргумента функцию и конструирует из нее другую функцию. Связыватели
- 15. Арифметические функциональные объекты
- 16. Предикаты
- 17. Предикат equal_to template struct equal_to: binary_function { bool operator () (const T& x, const T& y)
- 18. Пример пользовательского предиката struct monstr_less_ammo: public binary_function ( bool operator () ( monstr &m1, monstr &m2)
- 19. Отрицатели not1 , not2 Применяются для получения противоположного предиката not2 (less ()) greater_equal
- 20. Связыватели bind2nd bind1st Позволяют связать с конкретным значением второй и первый аргумент бинарной функции
- 21. Пример со связывателем Пусть требуется вычислить количество элементов целочисленного массива, меньших 40 #include #include #include using
- 22. Адаптеры указателей на функцию pointer_to_unary_function pointer_to_binary_function Нужны, чтобы применять связыватели к обычным указателям на функции ptr_fun
- 23. Пример применения адаптера функции #include #include #include using namespace std; struct A { int x, int
- 24. Пример применения адаптера функции #include #include #include #include using namespace std; enum color {red, green, blue};
- 25. Пример применения адаптера функции ~monstr (){ delete [ ] name;} operator int() { return health;} Int
- 26. Пример применения адаптера функции monstr :: monstr (int he, int am): health(he), ammo(am), skin(red), name(0){} monstr
- 27. Пример применения адаптера функции monstr:: monstr (color sk) { switch(sk) { case red: health=1; ammo=10; skin=red;
- 28. Пример применения адаптера функции bool less_health (monstr m1, monstr m2) { return m1.get_health() int main() {
- 29. Пример применения адаптера функции cout for (int i=0; i cout cout cout bind2nd (ptr_fun (less_health),20)); return
- 30. Результаты работы программы Monstry: monstr : ammo=30 health =10 monstr : ammo=10 health=200 monstr: ammo=10 health=1
- 31. Адаптеры методов #include #include using namespace std; void show (int a){ cout int main() { int
- 32. Адаптеры методов Позволяют использовать методы классов в качестве аргументов стандартных алгоритмов Адаптер получает функцию и конструирует
- 33. Стандартные адаптеры методов
- 35. Скачать презентацию