С++ для начинающих

         

Окончательная программа - часть 7


            if ( loc_cnt )

                cout << ",";

            else ++loc_cnt;

            cout << "(" << (*liter).first

                 << "," << (*liter).second << ")";

            ++"liter;

        }

        cout << ")\n";

        ++iter;

    }

    cout << endl;

}

void

TextQuery::

disp1ay_text_locations()

{

    vector<string,allocator> *text_words =

        text_locations->first;

    vector<location,allocator> *text_locs =

        text_locations->second;

    register int elem_cnt = text_words->size();

    if ( elem_cnt != text_locs->size() )

    {

        cerr

         << "oops! internal error: word and position vectors "

         << "are of unequal size\n"

         << "words: " << elem_cnt << " "

         << "locs: " << text_locs->size()

         << " -- bailing out!\n";

        exit( -2 );

    }

    for ( int ix=0; ix < elem_cnt; ix++ )

    {

        cout << "word: " << (*text_words)[ ix ] << "\t"

             << "location: ("

             << (*text_locs)[ix].first << ","

             << (*text.locs)[ix].second << ")"

             << "\n";

    }

    cout << endl;

}

Упражнение 6.25

Объясните, почему нам потребовался специальный класс inserter для заполнения набора стоп-слов (это упоминается в разделе 6.13.1, а детально рассматривается в 12.4.1).

set<string> exclusion_set;

ifstream    infile( "exclusion_set" );

copy( default_excluded_words, default_excluded_words+25,

      inserter(exclusion_set, exclusion_set.begin() ));

Упражнение 6.26

Первоначальная реализация поисковой системы отражает процедурный подход: набор глобальных функций оперирует набором независимых структур данных. Окончательный вариант представляет собой альтернативный подход, когда мы инкапсулируем функции и данные в класс TextQuery. Сравните оба способа. Каковы недостатки и преимущества каждого?

Упражнение 6.27

В данной версии программы имя файла с текстом вводится по запросу. Более удобно было бы задавать его как параметр командной строки; в главе 7 мы покажем, как это делается. Какие еще параметры командной строки желательно реализовать?




Содержание  Назад  Вперед