Случайный афоризм
Книга так захватила его, что он захватил книгу. (Эмиль Кроткий)
 
новости
поиск по автору
поиск по тематике
поиск по ключевому слову
проба пера
энциклопедия авторов
словарь терминов
программы
начинающим авторам
ваша помощь
о проекте
Книжный магазин
Главная витрина
Книги компьютерные
Книги по психологии
Книги серии "Для чайников"
Книги по лингвистике
ЧАВо
Разные Статьи
Статьи по литературе

Форма пользователя
Логин:
Пароль:
регистрация
 детектив



 драмма



 животные



 история



 компьютерная документация



 медицина



 научно-популярная



 очередная история



 очерк



 повесть



 политика



 поэзия и лирика



 приключения



 психология



 религия



 студенту



 технические руководства



 фантастика



 философия и мистика



 художественная литература



 энциклопедии, словари



 эротика, любовные романы



в избранноеконтакты

Параметры текста
Шрифт:
Размер шрифта: Высота строки:
Цвет шрифта:
Цвет фона:

      int free;
  public:
      assoc(int);
      int& operator[](char*);
  };

Итератор определяется как

  class assoc_iterator{
      assoc* cs;  // текущий массив assoc
      int i;      // текущий индекс
  public:
      assoc_iterator(assoc& s) { cs = &s; i = 0; }
      pair* operator()()
          { return (ifree)? &cs->vec[i++] : 0; }
  };

Надо инициализировать  assoc_iterator для массива assoc, после чего
он будет  возвращать указатель на новую pair из этого массива вский
раз, когда  его будут  активизировать операцией  (). По  достижении
конца массива он возвращает 0:

  main()    // считает вхождения каждого слова во вводе
  {
      const MAX = 256;  // больше самого большого слова
      char buf[MAX];
      assoc vec(512);
      while (cin>>buf) vec[buf]++;
      assoc_iterator next(vec);
      pair* p;
      while ( p = next() )
          cout << p->name << ": " << p->val << "\n";
  }

                             - стр 191 -

Итераторный  тип  вроде  этого  имеет  преимущество  перед  набором
функций, которые  выполняют ту  же работу:  у него есть собственные
закрытые данные  для хранения  хода  итерации.  К  тому  же  обычно
существенно, чтобы  одновременно могли  работать  много  итераторов
этого типа.
  Конечно, такое  применение объектов  для представления итераторов
никак особенно  с перегрузкой  операций не  связано.  Многие  любят
использовать итераторы  с такими  операциями, как first(), next() и
last() (первый, следующий и последний).

     6.9 Класс Строка

  Вот  довольно   реалистичный  пример   класса   string.   В   нем
производится  учет   ссылок  на   строку  с   целью  минимизировать
копирование  и   в  качестве   констант   применяются   стандартные
символьные строки C++.

  #include
  #include

  class string {
      struct srep {
          char* s;           // указатель на данные
          int   n;           // счетчик ссылок

1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10 : 11 : 12 : 13 : 14 : 15 : 16 : 17 : 18 : 19 : 20 : 21 : 22 : 23 : 24 : 25 : 26 : 27 : 28 : 29 : 30 : 31 : 32 : 33 : 34 : 35 : 36 : 37 : 38 : 39 : 40 : 41 : 42 : 43 : 44 : 45 : 46 : 47 : 48 : 49 : 50 : 51 : 52 : 53 : 54 : 55 : 56 : 57 : 58 : 59 : 60 : 61 : 62 : 63 : 64 : 65 : 66 : 67 : 68 : 69 : 70 : 71 : 72 : 73 : 74 : 75 : 76 : 77 : 78 : 79 : 80 : 81 : 82 : 83 : 84 : 85 : 86 : 87 : 88 : 89 : 90 : 91 : 92 : 93 : 94 : 95 : 96 : 97 : 98 : 99 : 100 : 101 : 102 : 103 : 104 : 105 : 106 : 107 : 108 : 109 : 110 : 111 : 112 : 113 : 114 : 115 : 116 : 117 : 118 : 119 : 120 : 121 : 122 : 123 : 124 : 125 : 126 : 127 : 128 : 129 : 130 : 131 : 132 : 133 : 134 : 135 : 136 : 137 : 138 : 139 : 140 : 141 : 142 : 143 : 144 : 145 : 146 : 147 : 148 : 149 : 150 : 151 : 152 : 153 : 154 : 155 : 156 : 157 : 158 : 159 : 160 : 161 : 162 : 163 : 164 : 165 : 166 : 167 : 168 : 169 : 170 : 171 : 172 : 173 : 174 : 175 : 176 : 177 : 178 : 179 : 180 : 181 : 182 : 183 : 184 : 185 : 186 : 187 : 188 : 189 : 190 : 191 : 192 : 193 : 194 : 195 : 196 : 197 : 198 : 199 : 200 : 201 : 202 : 203 : 204 : 205 : 206 : 207 : 208 : 209 : 210 : 211 : 212 : 213 : 214 : 215 : 216 : 217 : 218 : 219 : 220 : 221 : 222 : 223 : 224 : 225 : 226 : 227 : 228 : 229 : 230 : 231 : 232 : 233 : 234 : 235 : 236 : 237 : 238 : 239 : 240 : 241 : 242 : 243 : 244 : 245 : 246 : 247 : 248 : 249 :
главная наверх

(c) 2008 Большая Одесская Библиотека.