Категория
Информатика
Тип
реферат
Страницы
1 стр.
Дата
02.02.2009
Формат файла
.rtf — Rich Text Format (Wordpad)
Архив
20660.zip — 3.55 kb
  • indeksirovanie_20660_1.rtf — 13.26 Kb
  • Readme_docus.me.txt — 125 Bytes
Оцените работу
Хорошо  или  Плохо


Текст работы

Индексирование Alena Alena
Индексирование
Чтобы задать смысл индексов
для объектов класса используется функция 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 = (sval;
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]++;
int_all();
Список литературы
Для подготовки данной работы были использованы материалы с сайта t



Ваше мнение



CAPTCHA