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

сварной настил

Индексация - часть 2


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

Наконец, можно написать тривиальную программу:

main() // подсчет числа вхождений во входной // поток каждого слова { const MAX = 256; // больше длины самого длинного слова char buf[MAX]; assoc vec(512); while (cin>>buf) vec[buf]++; vec.print_all(); }

Опытные программисты могут заметить, что второй комментарий можно легко опровергнуть. Решить возникающую здесь проблему предлагается в упражнении §7.14 [20]. Дальнейшее развитие понятие ассоциативного массива получит в §8.8.

Функция operator[]() должна быть членом класса. Отсюда следует, что эквивалентность x[y] == y[x] может не выполняться, если x объект класса. Обычные отношения эквивалентности, справедливые для операций со встроенными типами, могут не выполняться для пользовательских типов (§7.2.2, см. также §7.9).




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