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

trans_map.insert( va1Type( "pos", "suppose" ));

// напечатаем словарь

map string,string ::iterator it;

cout "Наш словарь подстановок: \n\n";

for ( it = trans_map.begin();

it != trans_map.end(); ++it )

cout "ключ: " (*it).first "\t"

"значение: " ("it).second "\n";

cout "\n\n";

// второе упрощение: жестко заданный текст

string textarray[14]={ "nah", "I", "sez", "tanx",

"cuz", "I", "wuz", "pos", "to", "not",

"cuz", "I", "wuz", "gratz" };

vector string text( textarray, textarray+14 );

vector string ::iterator iter;

// напечатаем текст

cout "Исходный вектор строк:\n\n";

int cnt = 1;

for ( iter = text-begin(); iter != text.end();

++iter,++cnt )

cout *iter ( cnt % 8 ? " " : "\n" );

cout "\n\n\n";

// map для сбора статистики

map string,int stats;

typedef map string,int ::value_type statsValType;

// здесь происходит реальная работа

for ( iter=text.begin(); iter != text.end(); ++iter )

if (( it = trans_map.find( *iter ))

!= trans_map.end() )

{

if ( stats.count( *iter ))

stats [ *iter ] += 1;

else stats.insert( statsVa1Type( *iter, 1 ));

*iter = (*it).second;

}

// напечатаем преобразованный текст

cout "Преобразованный вектор строк:\n\n";

cnt = 1;

for ( iter = text.begin(); iter != text.end();

++iter, ++cnt )

cout *iter ( cnt % 8 ? " " : "\n" );

cout "\n\n\n";

// напечатаем статистику

cout "И напоследок статистика:\n\n";

mapstring,int,lessstring,allocator::iterator siter;

for (siter=stats.begin(); siter!=stats.end(); ++siter)

cout (*siter).first " "

"было заменено "

(*siter).second

(" раз(а)\n" );

}

Вот результат работы программы:

Наш словарь подстановок:

key: 'em value: them

key: cuz value: because

key: gratz value: grateful

key: nah value: no

key: pos value: suppose

key: sez value: says

key: tanx value: thanks

key: wuz value: was

Исходный вектор строк:

nah I sez tanx cuz I wuz pos

to not cuz I wuz gratz

Преобразованный вектор строк:

no I says thanks because I was suppose

to not because I was grateful

И напоследок статистика:

cuz было заменено 2 раз(а)

gratz было заменено 1 раз(а)

nah было заменено 1 раз(а)

pos было заменено 1 раз(а)

sez было заменено 1 раз(а)

tanx было заменено 1 раз(а)

wuz было заменено 2 раз(а)

<p>6.12.5. Удаление элементов map</p>

Существуют три формы функции-члена erase() для удаления элементов отображения. Для единственного элемента используется erase() с ключом или итератором в качестве аргумента, а для последовательности эта функция вызывается с двумя итераторами. Например, мы могли бы позволить удалять элементы из text_map таким образом:

string removal_word;

cout "введите удаляемое слово: ";

cin removal_word;

if ( text_map-erase( remova1_word ))

cout "ok: " remova1_word " удалено\n";

else cout "увы: " remova1_word " не найдено!\n";

Альтернативой является проверка: действительно ли слово содержится в text_map?

mapstring,loc*::iterator where;

where = text_map.find( remova1_word );

if ( where == text_map-end() )

cout "увы: " remova1_word " не найдено!\n";

else {

text_map-erase( where );

cout "ok: " remova1_word " удалено!\n";

}

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

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

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

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

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

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

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

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

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