Читаем C++ для начинающих полностью

// пробежимся по всем словам, вставляя пары

vectorstring,allocator *text_words =

text_locations-first;

vectorlocation,allocator *text.locs =

text_locations-second;

register int elem_cnt = text_words-size();

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

{

string textword = ( *text_words )[ ix ];

if ( textword.size() 3 ||

exclusion_set.count( textword ))

continue;

if ( ! word_map-count((*text_words)[ix] ))

{ // слово отсутствует, добавим:

loc *ploc = new vectorlocation,allocator;

ploc-push_back( (*text_locs)[ix] );

word_map-insert( value_type( (*text_words)[ix],ploc ));

}

else (*word_map) [(*text_words) [ix]]-

push_back( (*text_locs) [ix] );

}

}

void

TextQuery::

query_text()

{

string query_text;

do {

cout

"enter a word against which to search the text.\n"

"to quit, enter a single character == ";

cin query_text;

if ( query_text.size() 2 ) break;

string caps( "ABCDEFGHIJKLMNOPQRSTUVWXYZ" );

string::size_type pos = 0;

while (( pos = query_text.find_first_of( caps, pos ))

!= string::npos )

query_text[ pos ] = to1ower( query_text[pos] );

// query_text должно быть введено

if ( !word_map-count( query_text )) {

cout "\nSorry. There are no entries for "

query_text ".\n\n";

continue;

}

loc *ploc = (*word_map) [ query_text ];

setshort,lessshort,allocator occurrence_1i nes;

loc::iterator liter = ploc-begin(),

liter_end = ploc-end();

while ( liter != liter_end ) {

occurrence_lines.1nsert(

occurrence_lines.end(), (*liter).first);

++liter;

}

register int size = occurrence_lines.size();

cout "\n" query_text

" occurs " size

(size == 1 ? " time:" : " times:")

"\n\n";

setshort,lessshort,allocator::iterator

it=occurrence_lines.begin();

for ( ; it != occurrence_"lines.end(); ++it ) {

int line = *it;

cout "\t( line "

// будем нумеровать строки с 1,

// как это принято везде

line + 1 " ) "

(*lines_of_text)[line] endl;

}

cout endl;

}

while ( ! query_text.empty() );

cout "Ok, bye!\n";

}

void

TextQuery::

display_map_text()

{

typedef mapstring,loc*, lessstring, allocator map_text;

map_text::iterator iter = word_map-begin(),

iter_end = word_map-end();

while ( iter != iter_end ) {

cout "word: " (*iter).first " (";

int loc_cnt = 0;

loc *text_locs = (*iter).second;

loc::iterator liter = text_locs-begin(),

liter_end = text_locs-end();

while ( liter != liter_end )

{

if ( loc_cnt )

cout ",";

else ++loc_cnt;

cout "(" (*liter).first

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

++"liter;

}

cout ")\n";

++iter;

}

cout endl;

}

void

TextQuery::

disp1ay_text_locations()

{

vectorstring,allocator *text_words =

text_locations-first;

vectorlocation,allocator *text_locs =

text_locations-second;

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных