Язык программирования C++ для профессионалов


Ссылки - часть 3


Для заданного параметра (строки) value() находит объект, представляющий целое (а не просто значение соответствующего целого) и возвращает ссылку на него. Эти функции можно использовать, например, так:

const int MAX = 256; // больше длины самого длинного слова

main() // подсчитывает частоту слов во входном потоке { char buf[MAX];

while (cin>>buf) value(buf)++;

for (int i=0; vec[i].name; i++) cout << vec[i].name << ": " << vec [i].val<< '\n'; }

В цикле while из стандартного входного потока cin читается по одному слову и записывается в буфер buf (см. лекцию 10), при этом каждый раз значение счетчика, связанного со считываемой строкой, увеличивается. Счетчик отыскивается в ассоциативном массиве vec с помощью функции find(). В цикле for печатается получившаяся таблица различных слов из cin вместе с их частотой. Имея входной поток

aa bb bb aa aa bb aa aa

программа выдает:

aa: 5 bb: 3

С помощью шаблонного класса и перегруженной операции [ ] достаточно просто довести массив из этого примера до настоящего ассоциативного массива.




Начало  Назад  Вперед



Книжный магазин