это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
Ознакомительный фрагмент работы:
Вызов функции, то есть запись выражение (список_выражений), можно проинтерпретировать как бинарную операцию, и операцию вызова можно перегружать так же, как и другие операции. Список параметров функции operator() вычисляется и проверяется в соответствие с обычными правилами передачи параметров. Перегружающая функция может оказаться полезной главным образом для определения типов с единственной операцией и для типов, у которых одна операция настолько преобладает, что другие в большинстве ситуаций можно не принимать во внимание.
Для типа ассоциативного массива assoc мы не определили итератор. Это можно сделать, определив класс assoc_iterator, работа которого состоит в том, чтобы в определенном порядке поставлять элементы из assoc. Итератору нужен доступ к данным, которые хранятся в assoc, поэтому он сделан другом:
class assoc {
friend class assoc_iterator;
pair* vec;
int max;
int free;
public:
assoc(int);
int& operator[](char*);
};
Итератор определяется как
class assoc_iterator{
assoc* cs; // текущий массив assoc
int i; // текущий индекс
public:
assoc_iterator(assoc& s) { cs = &s; i = 0; }
pair* operator()()
{ return (ifree)? &cs->vec[i++] : 0; }
};
Надо инициализировать assoc_iterator для массива assoc, после чего он будет возвращать указатель на новую pair из этого массива всякий раз, когда его будут активизировать операцией (). По достижении конца массива он возвращает 0:
main() // считает вхождения каждого слова во вводе
{
const MAX = 256; // больше самого большого слова
char buf[MAX];
assoc vec(512);
while (cin>>buf) vec[buf]++;
assoc_iterator next(vec);
pair* p;
while ( p = next() )
cout << p->name << ": " << p->val << "n";
}
Итераторный тип вроде этого имеет преимущество перед набором функций, которые выполняют ту же работу: у него есть собственные закрытые данные для хранения хода итерации. К тому же обычно существенно, чтобы одновременно могли работать много итераторов этого типа.
Конечно, такое применение объектов для представления итераторов никак особенно с перегрузкой операций не связано. Многие любят использовать итераторы с такими операциями, как first(), next() и last() (первый, следующий и последний).
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Нужна рецензия на статью (вак-3), для магистра, в журнал "экономика
Рецензия, Экономика
Срок сдачи к 2 авг.
Необходимо подготовить отчет по практике (Ознакомительная) в...
Отчет по практике, Строительство
Срок сдачи к 6 авг.
здравствуйте вас порекомендовали ,поможете
Контрольная, Методики расчета пожарных рисков для гражданских зданий
Срок сдачи к 20 авг.
Разработка программы визуальная новелла на Godot
Диплом, Информационные технологии
Срок сдачи к 17 авг.
Формирование готовности будущего эстрадного вокалиста к концертно-исполнительской деятельности в учреждениях дополнительного образования
ВКР, Музыкальная педагогика
Срок сдачи к 10 авг.
Онлайн-помощь при написании ви. нужно 100 баллов. тест
Онлайн-помощь, Прикладная информатика
Срок сдачи к 4 авг.
Нужно подкорректировать итоговой аттестационной работы.
Услуги корректора, Итоговая аттестационная работа, государственное управление
Срок сдачи к 3 авг.
Отчет по практике, Учебная практика | У | Учебная практика
Отчет по практике, Юриспруденция
Срок сдачи к 3 авг.
Выполнить дипломный проект. Экономика и бухгалтерский учет. П-00061
Диплом, Бизнес-планирование
Срок сдачи к 6 авг.
Выполнить дипломный проект. Экономика и бухгалтерский учет. П-00061
Диплом, Экономика
Срок сдачи к 6 авг.
Начало в 9:00 до 11, сколько заданий пока не известно
Онлайн-помощь, Высшая математика
Срок сдачи к 4 авг.
Управление IT-проектами. Моделирование проектной деятельности
Курсовая, Управление проектами
Срок сдачи к 7 авг.
Заполните форму и узнайте цену на индивидуальную работу!