Docsity
Docsity

Подготовься к экзаменам
Подготовься к экзаменам

Учись благодаря многочисленным ресурсам, которые есть на Docsity


Получи баллы для скачивания
Получи баллы для скачивания

Заработай баллы, помогая другим студентам, или приобретай их по тарифом Премиум


Руководства и советы
Руководства и советы

Индексирование статья по информатике , Руководство, Проектов, Исследование из Информатика

Индексирование статья по информатике

Вид: Руководство, Проектов, Исследование

2016/2017

Загружен 11.04.2017

refbank14809
refbank14809 🇷🇺

10 документы

1 / 2

Toggle sidebar

Сопутствующие документы


Частичный предварительный просмотр текста

Скачай Индексирование статья по информатике и еще Руководство, Проектов, Исследование в формате PDF Информатика только на Docsity! Индексирование Чтобы задать смысл индексов для объектов класса используется функция operator[]. Второй параметр (индекс) функции operator[] может быть любого типа. Это позволяет определять ассоциативные массивы и т.п. В качестве примера давайте перепишем пример , где при написании небольшой программы для подсчета числа вхождений слов в файле применялся ассоциативный массив. Там использовалась функция. Здесь определяется надлежащий тип ассоциативного массива: struct pair { char* name; int val; }; class assoc { pair* vec; int max; int free; public: assoc(int); int& operator[](char*); void print_all(); }; В assoc хранится вектор пар pair длины max. Индекс первого неиспользованного элемента вектора находится в free. Конструктор выглядит так: assoc::assoc(int s) { max = (s<16) ? s : 16; free = 0; vec = new pair[max]; } При реализации применяется все тот же простой и неэффективный метод поиска. Однако при переполнении assoc увеличивается: #include int assoc::operator[](char* p) /* работа с множеством пар "pair": поиск p, возврат ссылки на целую часть его "pair" делает новую "pair", если p не встречалось */ { register pair* pp;
Docsity logo