Чтобы задать смысл индексов для объектов класса
используется функция 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;
for
(pp=&vec[free-1]; vec<=pp; pp--)
if
(strcmp(p,pp->name)==0) return pp->val;
if (free==max) { // переполнение: вектор увеличивается
pair* nvec
= new pair[max*2];
for ( int
i=0; iname = new char[strlen(p)+1];
strcpy(pp->name,p);
pp->val =
0; // начальное значение: 0
return
pp->val;
}
Поскольку представление assoc скрыто, нам нужен способ
его печати. В следующем разделе будет показано, как определить подходящий
итератор, а здесь мы используем простую функцию печати:
vouid assoc::print_all()
{
for (int i = 0;
i>buf) vec[buf]++;
vec.print_all();
}
Другие работы по теме:
Роль цены в рыночной экономике
Категория цены как элемент рыночной системы хозяйствования. Виды цен мирового рынка. Отражение в цене производителя денежных затрат предприятия на изготовление и реализацию продукции. Влияние прибыли на формирование цен. Индексирование цены и ее динамика.
Электронные каталоги (ЭК): Особенности работы с эк 4 2
Сша. Странно, но в английской профессиональной лексике нет эквивалента сочетанию “electronic catalog”. Американцы, услышав это выражение, обязательно спросят, что имеется в виду. В отличие от нашей страны, в Соединенных Штатах этот термин имеет несколько значений
и аннотация
Разработан всероссийским институтом научной и технической информации, тк 191 «Научно-техническая информация, библиотечное и издательское дело»
и аннотация
Разработан всероссийским институтом научной и технической информации, тк 191 «Научно-техническая информация, библиотечное и издательское дело»
работа по дисциплине
Приобретение навыков исследования естественно-языкового описания предметной области
Правила составления ключевых слов 1
При индексировании статьи ключевыми словами (КС) библиотеки, входящие в корпорацию марс, ориентируются на термины, приведенные в госте 74-96 (перечень терминов см в приложении в конце)
Системы управления документами, их функции
Содержание Введение Часть . Системы управления документами, их функции Основные функции СУД Архитектура СУД Хранилище документов Система управления документооборотом Коммуникационная среда
Информационные технологии в управлении 2
РЕФЕРАТ по курсу «Менеджмент» по теме: «Информационные технологии в управлении» 1. Организация и средства информационных технологий обеспечения управленческой деятельности
Организационная структура предприятия
Формулировка миссии организации. Организационная структура предприятия. Мотивация на предприятии. Индексирование заработной платы работников. Создание кадрового резерва работников ведущих профессий с временным использованием их на других работах.
Латентно-семантический анализ
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ Реферат по русскому языку и культуре речи на тему: «Латентно-семантический анализ»
Публикация векторных карт
Подготовка векторных карт к виду, пригодному для их использования в геоинформационных системах (ГИС), является необходимой частью процесса создания карты.
Создание таблиц. Индексирование таблиц
Создание и последующее редактирование таблицы базы данных "Студент" с помощью совместного использования мастеров Table Wizard и Table Designer, применяя заранее заготовленные тематические шаблоны. Описание этапов выполнения работы в данных программах.
Реализация алгоритма обработки данных
Реализация алгоритма обработки данных и ведения реляционной базы данных. Программное обеспечение, ведение базы и получение ведомости с частичными суммами.
Ведение реляционной БД на яз. CLIPPER 5.02
МОСКОВСКАЯ ГОСУДАРСТВЕННАЯ ТЕКСТИЛЬНАЯ АКАДЕМИЯ им. КОСЫГИНА Кафедра ИТ и ВТ. К У Р С О В А Я Р А Б О Т А Тема : “Разработка програмного обеспечения, ведение базы данных и получение ведомости с частичными суммами.“
Практика Access
Система управления базами данных MS Access. Формирование структуры и файла базы данных. Сортировка и индексирование базы данных. Разработка отчётов средствами MS Access.
Генерирование детерминированных процессов в среде LabVIEW
Система программирования LabVIEW и ее использование в системах сбора и обработки данных. Программирование, основанное на потоках данных. Генерирование детерминированных процессов. Способность инструментов программы изменяться. Расчет значений массива.
Алгоритмы и организация данных
Программа последовательного поиска в последовательном неотсортированном массиве реквизитов единственного значения. Алгоритм сортировки простым выбором. Программа индексирования основного файла по одному реквизиту. Индексные файлы по реквизитам.
Компьютерная лингвистика
Место и роль компьютерной лингвистики в лингвистических исследованиях. Лингвистические средства, создаваемые и применяемые в компьютерной лингвистике. Современные интерфейсы компьютерной лингвистики. Перспективная задача компьютерной лингвистики.
Информационно-поисковый тузаурус
Информационно-поисковый тезаурус, его определение и цель разработки. Организация быстрого и эффективного поиска документальной информации. Использование, структура, построение, сфера применения и перспективы развития информационно-поисковых тезаурусов.
Электронный документооборот 2
Содержание Введение……………………………………………………..……………………………………….2 1. Системы электронного документооборота…………………….………………………………..2 1.1 Документооборот в мире безбумажных технологий……………………………..……….......2
Методика создания структуры базы данных на персональном компьютере
Лабораторная работа № 1 Тема: Создание таблиц и просмотр содержимого базы данных Цель работы: Освоение методики создания структуры базы данных на персональном компьютере. Получение практических навыков ввода информации и просмотра содержимого таблицы базы данных.
Программа обработки данных в библиотеке
Программа обработки данных в библиотеке. 1 Постановка задачи. 2 Метод решения задачи. 3 Описание логического представления данных. Название. строка 30 символов типа char. строка 30 символов типа char.
Информационные технологии в туризме
Список вопросов 1. Основные сведения о поисковых системах. 2. Понятие Интернет-маркетинга. 3. Принципы положительной обратной связи и обратного ценообразования.
Программа учёта и выборки информации о странах
Программа учёта и выборки информации о странах Пояснительная записка к курсовой работе по дисциплине “Основы алгоритмизации и программирования” Выполнил : студент гр. 96-ВВ3 Бубнов А.В.
Виды и направления МСФО
Понятие и назначение, структура Международных стандартов финансовой отчетности. Требования МСФО в отношении раскрытия информации об основных средствах в финансовой отчетности. Особенности построения бухгалтерского баланса в соответствии со стандартами.
Организация регистрации документов на предприятии
Понятие, назначение, принцип и формы регистрации документов. Индексирование документов и организация информационно-справочной системы. Необходимые сведения о входящих и исходящих документах. Изучение особенностей документооборота в ООО "Ижэлектроснаб".