Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Самоучитель С++ - Шилдт Г.

Шилдт Г. Самоучитель С++ — Спб.: БВХ-Петербург, 2003. — 688 c.
ISBN 5-7791-0086-1
Скачать (прямая ссылка): samouchitelc2003.djvu
Предыдущая << 1 .. 145 146 147 148 149 150 < 151 > 152 153 154 155 156 157 .. 206 >> Следующая

#include <icstream>
#include <string>
using namespace std;
int main{)
{
string strl("Эго проверка"); string str2 ("АБВГДЕЖ") ;
cout « "Исходные строки:\n" cout « "strl: " « strl « endl;
cout « "str2: " « str2 « "NnW;
// работа функции insert(}
cout « "Вставка строки str2 в строку strl:\n"
470
Самоучитель
strl. insert (4, str2) ; cout << strl << r,\n\n";
// работа функции erase ()
cout << "Удаление семи символов из строки strl:\nM
strl.erase(4, 1) ;
cout << strl << м\п\п";
// работа функции replace {)
cout << "Замена восьми символов из strl символами из str2:\ntr strl.replace(4, 8, str2) ; cout << strl « M\n\n";
return 0;
h
г
После выполнения программы на экране появится следующее:
Исходные строки: strl: Это проверка
Str2: АБВГДЕЖ
Вставка строки str2 в строку strl:
Это АВВГДЕЖпроверка
Удаление семи символов из строки strl;
Это проверка
Замена восьми символов из strl символами из str2 :
Это АБВГДЕЖ
3. Поскольку класс string определяет тип данных, появляется возможность создавать контейнеры для хранения объектов типа string. Например, ниже представлена усовершенствованная версия программы создания ассоциативного списка для хранения слов и антонимов, впервые показанная в примере 3 раздела 14.5.
/* Ассоциативный список слов и антонимов для объектов типа string
V
ttinclude <iostream>
#include <map>
#include <string>
using namespace std;
int main ( )
{
map<string, string> m; int і;
m, insert (pair<string, string> ("да", "нет") ) ; m. insert(pair<string, string> ("хорошо", "плохо") ) ; m, insert(pairCstring,string>{"влево") , "вправо")) ; m. insert{pair<string, string>(”вверк"), "вниз")) ;
Глава 14. Библиотека стандартных шаблонов _ 471
string s;
cout « "Введите слово: сіп» s;
itiap<string, string>: : iterator p;
p =m. find(s) ;
if (p ! = m. end() )
cout « "Антоним: " « p->second;
else
cout << "Такого слова в ассоциативном списке нет\п"; return 0;
>
С помощью объектов типа string сохраните в списке следующие строки:
один два три четыре пять
шесть семь восемь девять десять
Затем отсортируйте список и выведите на экран содержимое отсортированного списка.
Поскольку класс string является контейнером, он может использоваться со стандартными алгоритмами. Создайте программу, в которой пользователь вводит строку. Затем с помощью функции count() сосчитайте в строке число символов "е" и выведите это значение на экран.
Модифицируйте решение упражнения 2 таким образом, чтобы подсчитывались только символы в нижнем регистре. (Подсказка: воспользуйтесь функцией count_if{).)
Класс string — это конкретизация некоторого класса-шаблона. Какого?
L"
'.'in
Теперь вам необходимо выполнить следующие упражнения и ответить на вопросы.
1. Каким образом библиотека стандартных шаблонов позволяет упростить процесс создания более надежных программ?
2. Опишите контейнер, итератор и алгоритм в терминах библиотеки стандартных шаблонов.
усвоения: -главы
472_________________________________________________ _______Самоучитель C++
3. Напишите программу создания 10-элементного вектора, содержащего числа от 1 до 10. Затем из полученного вектора скопируйте в список только четные элементы.
4. В чем преимущество использования данных типа string? В чем их единственный недостаток?
5. Что такое предикат?
6. Переработайте пример 2 раздела 14.5 так, чтобы в нем использовались объекты типа string.
7. Начните изучение объектов-функций библиотеки стандартных шаблонов. Для начала познакомьтесь со стандартными классами iuiary_function и bi-naryfimction, которые помогут вам создавать объекты-функции.
8. Изучите техническую документацию на библиотеку стандартных шаблонов, поставляемую с вашим компилятором. Там вы обязательно обнаружите массу полезных инструментов и приемов программирования.
Проверка усвоения материала в целом
В этом разделе проверяется, хорошо ли вы усвоили материал этой и предыдущих глав.
1. Начиная с главы 1, вы проделали долгий путь. Потратьте еще немного времени для беглого просмотра книги. После этого подумайте, как можно было бы улучшить примеры (особенно в первых шести главах) с помощью всех известных вам теперь инструментов C++.
2. Программирование легче изучать в процессе работы. Пишите больше программ на C++. Пытайтесь экспериментировать с теми атрибутами языка, которые уникальны только для него.
3. Продолжайте изучение библиотеки стандартных шаблонов. В будущем большинство задач программирования будет решаться именно с помощью библиотеки стандартных шаблонов, поскольку, как правило, кажущаяся сложность работы с контейнерами может быть значительно снижена, благодаря алгоритмам.
Предыдущая << 1 .. 145 146 147 148 149 150 < 151 > 152 153 154 155 156 157 .. 206 >> Следующая