Главная » Просмотр файлов » Г. Шилтд - Самоучитель C++ (PDF)

Г. Шилтд - Самоучитель C++ (PDF) (1114887), страница 71

Файл №1114887 Г. Шилтд - Самоучитель C++ (PDF) (Г. Шилтд - Самоучитель C++ (PDF)) 71 страницаГ. Шилтд - Самоучитель C++ (PDF) (1114887) страница 712019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 71)

Библиотека стандартных шаблонов469Представление строкВторая строкаstr3 > strlstr3 == strl+str2Это обычная строкаЭто оОычная строкаВведите строку: ПриветПриветКак видите, с объектами типа string можно обращаться так же, как и совстроенными типами данных C++. Это, фактически, и есть главное достоинство строкового класса.Отметьте простоту манипулирования со строками: для конкатенации строк используется обычный оператор +, а для их сравнения — обычный оператор >.Чтобы выполнить те же операции для оканчивающихся нулем строк в стиле С,вам пришлось бы вызывать функции strcat() и strcmp(), что, согласитесь, гораздо менее удобно.

Поскольку объекты типа string можно совершенно свободно указывать в выражениях вместе с оканчивающимися нулем строками встиле С, то никаких неприятностей от их использования в ваших программахбыть не может, а выгоды, наоборот, — очевидны.Имеется еще одна деталь, на которую следует обратить внимание в предыдущей программе: размеры строк не задаются. Объекты типа string автоматически настраиваются на хранение строк требуемой длины. Таким образом, когда вы выполняете присваивание или конкатенацию строк, размер целевойстроки автоматически вырастает ровно настолько, насколько это нужно дляразмещения новой строки. Этот динамический аспект использования объектов типа string следует всегда принимать во внимание при выборе вариантапредставления строк в ваших программах.

(Как уже отмечалось, стандартныеоканчивающиеся нулем строки являются возможным источником нарушенияграниц массивов).2. В следующей программе демонстрируются функции insert(), erase() иreplace ().// Использование функций insert О, erase () и replace ()^include <iostream>^include <string>using namespace std;int main(){string strl("Это проверка");string 5^2("АБВГДЕЖ") ;cout « "Исходные строки:\п"cout « "strl: " « strl « endl;cout « "str2: " « str2 « "\n\n";// работа функции insert(}cout « "Вставка строки str2 в строку strl:\n"470_СамоучительC++strl, insert (4, str2) ;cout « strl « "\n\n";// работа функции erase ()cout « "Удаление семи символов из строки strl:\n"strl. erase (4, 1} ;cout « strl « "\n\n";// работа функции replace ()cout « "Замена восьми символов из strl символами из str2:\n"strl.replace(4, 8, str2) ;cout « strl « "\n\n";return 0;После выполнения программы на экране появится следующее:Исходные строки:strl: Это проверкаstr2: АБВГДЕЖВставка строки str2 в строку strl:Это АБВГДЕЖпроверкаУдаление семи символов из строки strl:Это проверкаЗамена восьми символов из strl символами из str2 :Это АБВГДЕЖ3.

Поскольку класс string определяет тип данных, появляется возможность создавать контейнеры для хранения объектов типа string. Например, ниже представлена усовершенствованная версия программы создания ассоциативногосписка для хранения слов и антонимов, впервые показанная в примере 3раздела 14.5./* Ассоциативный список слов и антонимов для объектов типа string*/^include <iostream>#include <map>^include <string>using namespace std;int main ( ){map<string, string> m;int i;m, insert (pair<string, string> ("да", "нет") ) ;m.

insert (pair<string, string> ("хорошо", "плохо",) ) ;m. insert (pair<string, string>( "влево") , "вправо") ) ;m. insert (pair<string, string> ("вверх") , "вниз") ) ;Глава14.Библиотекастандартныхшаблонов_4_71_string s;cout « "Введите слово: ";cin » s;map<string, string>: : iterator p;p = m. find(s) ;if (p != m.endO )cout « "Антоним: " « p->second;elsecout « "Такого слова в ассоциативном списке нет\п";return 0;С помощью объектов типа string сохраните в списке следующие строки:одиншестьдвасемьтривосемьчетыредевятьпятьдесятьЗатем отсортируйте список и выведите на экран содержимое отсортированного списка.Поскольку класс string является контейнером, он может использоваться состандартными алгоритмами.

Создайте программу, в которой пользовательвводит строку. Затем с помощью функции count() сосчитайте в строке числосимволов "е" и выведите это значение на экран.Модифицируйте решение упражнения 2 таким образом, чтобы подсчитывались только символы в нижнем регистре. (Подсказка: воспользуйтесь функцией count_if().)Класс string — это конкретизация некоторого класса-шаблона. Какого?j Проверке усвоенияI материала главы~^Теперь вам необходимо выполнить следующие упражнения и ответить навопросы.1.

Каким образом библиотека стандартных шаблонов позволяет упроститьпроцесс создания более надежных программ?2. Опишите контейнер, итератор и алгоритм в терминах библиотеки стандартных шаблонов.472__Самоучитель C++3. Напишите программу создания 10-элементного вектора, содержащегочисла от 1 до 10.

Затем из полученного вектора скопируйте в списоктолько четные элементы.4. В чем преимущество использования данных типа string? В чем их единственный недостаток?5. Что такое предикат?6. Переработайте пример 2 раздела 14.5 так, чтобы в нем использовалисьобъекты типа string.7. Начните изучение объектов-функций библиотеки стандартных шаблонов.Для начала познакомьтесь со стандартными классами unary_function и Ыnary_fiinction, которые помогут вам создавать объекты-функции.8.

Изучите техническую документацию на библиотеку стандартных шаблонов, поставляемую с вашим компилятором. Там вы обязательно обнаружите массу полезных инструментов и приемов программирования.Проверка усвоенияматериала в целомВ этом разделе проверяется, хорошо ли вы усвоили материал этой и предыдущих глав.1. Начиная с главы 1, вы проделали долгий путь. Потратьте еще немноговремени для беглого просмотра книги. После этого подумайте, как можно было бы улучшить примеры (особенно в первых шести главах) с помощью всех известных вам теперь инструментов C++.2. Программирование легче изучать в процессе работы.

Пишите большепрограмм на C++. Пытайтесь экспериментировать с теми атрибутамиязыка, которые уникальны только для него.3. Продолжайте изучение библиотеки стандартных шаблонов. В будущембольшинство задач программирования будет решаться именно с помощью библиотеки стандартных шаблонов, поскольку, как правило, кажущаяся сложность работы с контейнерами может быть значительно снижена, благодаря алгоритмам.4.

И последнее. Запомните: C++ дает вам беспрецедентные возможности иважно научиться мудро ими пользоваться. Благодаря этим возможностямC++ позволит вам значительно расширить потенциальные области применения ваших приложений. Однако злоупотребление ими может привести к появлению программ, которые трудно понимать, которым почтиневозможно следовать и которые слишком тяжело сопровождать.

Языкпрограммирования C++ — это мощнейший инструмент, но, как и любойдругой инструмент, он хорош только тогда, когда находится в надежныхруках.Приложение АНекоторые отличияязыковпрограммированияС и C++Для подавляющего большинства задач программирования C++ можно считатьнадмножеством языка С (как он описан в стандарте ANSI по С), поэтомуфактически все программы С являются также программами C++. Имеетсянесколько отличий, о части из которых было рассказано в главе 1.

Ниже перечислены оставшиеся отличия, о которых вам следует знать:О Незначительное, но потенциально важное отличие между С и C++ состоит в том, что в С символьная константа автоматически преобразуетсяв целое, а в C++ нет.Q В С можно объявить глобальную переменную несколько раз, что, хотя исчитается плохим стилем программирования, но ошибкой не является. ВC++ многократное объявление глобальной переменной считается ошибкой.Q В С по крайней мере первые 31 символ идентификатора являются значащими. В C++ значащими являются все символы идентификатора.

Темне менее с точки зрения практики столь длинные идентификаторы врядли могут где-нибудь пригодиться.а В С вы можете вызвать функцию main() в любом месте программы, хотякакую-либо пользу от такого вызова представить себе довольно трудно. ВC++ вызов функции main() из программы не допускается.а В С нельзя получить адрес регистровой переменной (переменной типаregister), а в C++ — можно.Q В С тип wchar_t определяется с помощью объявления typedef. В C++wchar t является ключевым словом.Приложение ВОтветы на вопросыирешения упражненийВ этом приложении вы найдете ответы на вопросы и решения упражненийдля подавляющего большинства (но не всех) приведенных в книге заданий.Часть вопросов и упражнений оставлены вам для самостоятельного творчества.

Советуем вам тщательно и добросовестно выполнять все задания, независимо от того, есть в этом приложении ответы на них или нет.ГЛАВА 1Упражнения1.31. ttinclude <iostream>using namespace;int main()Idouble hours, wage;cout « "Введите количество проработанных часов: ";cin » hours ;cout « "Введите почасовую оплату: ";cin » wage;cout « "Зарплата равна: $" « wage * hours;return 0;2. #include <iostream>using namespace std;476_______Самоучитель C++int main ()Idouble feet;do {cout « "Введите число футов (0 для завершения) : ";cin » feet;cout « feet * 12 « " дюймов\п";} while (feet != 0.0} ;return 0;3.

Характеристики

Тип файла
PDF-файл
Размер
65,55 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее