Главная » Просмотр файлов » Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004

Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791), страница 19

Файл №1160791 Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004) 19 страницаБ. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791) страница 192019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Очевидным выбором (после того, как вы осмыслили идею) является исполь- 2.8. Заключение зование оператора разыменования * (с(еге(егепсе) для доступа к элементу через итератор и оператора инкремента ++ для того, чтобы ааставить итератор ссылаться на следующий элемент, Имея в виду вышесказанное, мы можем написать следующий код: !етр1а!е<с1азз 1и, с!аээ Ои!> ооЫ сору (!пугот, 1п !оо ~аг, Ои! !о( ( соЫ1е (ггот!= !оо айаг( ( *!о = ")гот; 11 копируем элемент, на который указывает итератор ++!о; Ц следующий выходной элел~ент -н-!гот; 1/ следуюи(ий входной элемент Приведенный пример копирует любой контейнер, для которого мы можем определить итераторы с подходящим синтаксисом и семантикой. Встроенные в Сь+ типы низкого уровня, такие как указатели и массивы, имеют соответствующие операции, поэтому мы можем записать: сЬаг ос1(200) О массив из 200 символов сЬагос2(500~! ((л~ассивиэ500сипволов ио!дй'(( ( сору(йос1(0), йис1(200), йос2(0)(; Процедура скопирует с первого цо последний элементы массива пс1 в пс2, заполняя пс2 с первого элемента.

Все контейнеры стандартной библиотеки Я 16.3, глава 17) поддерживают технику итераторов и последовательностей. Два параметра шаблона (а не один) 3п и Ои! используются для указания типов источника и приемника. Так сделано потому, что часто возникает нужда в копировании из контейнера одного типа в контейнер другого типа. Например: сотр!ех ас(200); ооЫ у(оес!ог<сотр1ех>й ос, 1!в!<сотр(ех>й 1с! ( сору (йас(0), йас(200), 1с.Ьеугп Я; сору(!с.Ьеу!и ((, 1с.епд (Ь ос.Ьеу!и ((); Эта процедура копирует массив в список и список в вектор. В стандартном контейне- ре Ьеу!и (( — это итератор, указывающий на его первый элемент. 2.8. Заключение Не существует идеальных языков программирования. К счастью, язык программирования и ие обязан быть идеальным, чтобы быть хорошим инструментом для написания лаже огромных систем.

В лействительности, язык общего применения не может быть идеальным для всех задач. То, что является совершенством для одной задачи, очень часто оказывается недостатком для другой, потому что достижение совершен- Глава 2. Обзор С»+ 80 ства в конкретной области подразумевает специализацию. С++ создавался в качестве удобного инструмента для решения широкого круга задач и для более непосредственного выражения разнообразных идей. Не все можно выразить непосредственно, пользуясь встроенными возможностями языка.

На практике к этому и не нужно стремиться. Средства языка существуют для поддержки разнообрааных стилей и методов программирования. Следовательно, при изучении языка нужно делать упор на освоении стиля, который является родным н естественным для этого языка, а не на детальном понимании всех его возможностей. При практическом программирования мало толку от знания самых «тайных» средств языка или от использования максимально возможного количества средств.

То или иное средство языка само по себе не представляет большого интереса. Только в контексте общей технологии и других средств оно приобретает смысл и значение. Паатому при чтении следующих глав пожалуйста помните, что подлинной целью глубокого проникновения в С++ должно быть стремление научиться использовать средства языка в комплексе, опираясь на хороший стиль программирования и выверенные методы проектирования. 2.9. Сонеты [11 Не паникуйте! Все станет понятным в свое время; 5 2.1.

121 Для написания хороших программ не нужно знать о С++ все; 8 1.7. 131 Сосредоточьте внимание на технологиях программирования, а не на элементах языка; ф 2.1. Обзор стандартной библиотеки Зачем тратить время на обучение, когда невелсество даегпся даром 7 — Хоббс Стандартные библиотеки — вывод — строки — ввод — вектора — проверка диапазона — списки — ассоциативные массивы — обзор контейнеров— алгоритмы — итераторы — итераторы ввода/вывода — предикаты— алгоритмы, использующие функции-члены — обзор алгоритмов комплексные числа — векторная арифметика — обзор стандартной библиотеки — советы.

3.1. Введение Ни одна прог рамма приличных размеров ие пишется с использованием только «голых» конструкций языка. Сначала разрабатываются библиотеки поддержки. Они и создают основу для дальнейшей работы. В продолжение главы 2 здесь дается краткий обзор основных возможностей библиотеки, чтобы вы поняли, что можно сделать при помощи С+«и стшцгартной библиотеки. Полезные библиотечные типы, такие какеев«тлд, пес1аг, Йв1 и тар, описаны внес~с с наиболее общими способами их использования. Благодаря этому, я смогу в последующих главах приводить более осмысленные примеры и упражнения. Как и в главе 2, настоятельно рекомендуется не отвлекаться и не огорчаться из-за неполного понимания деталей.

Цель этой главы — дать вам почувствовать, что вас ожидаег, и помочь понять простейшие способы использования наиболее полезных библиотечных средств. Более подробное введение в стандартную библиотеку приведено в 6 16.1.2. Средства стандартной библиотеки, описанные в этой книге, являются частью любой полной реализации С»+. В добавление к стандартной библиотеке С++, большинство реализаций предоставляют «графический интерфейс пользователя», часто именуемый «О1Л» (Огар111са1 11зег 1псег1асе) или «оконной системой», для взаимодействия между пользователем и программой.

Аналогично, большинство сред разработки приложений предоставляют «библиотеки основных компонент» для поддержки корпоративной или отраслевой «стандартной» среды разработки иггили выполнения. Я не описываю такие системы и библиотеки. Целью является замкну- 82 Глава 3. Обзор стандартной библиотеки тое изложение С++, как он определен стандартом. За исключением особо оговоренных случаев, я привожу полностью переносимыс примерьь Естественно, программисту следует ознакомиться со средствами, доступными в разных системах, по это оставлено в качестве упраькнений.

3.2. Здравствуй, мир! Минимальной программой на С++ является следующая: (пт та(п () ( ) Она определяет функцию с именем таси, которая не принимает аргументов и ничего не делает. Каждая программа на С++ должна содержать функцию с именем та(п (). Программа начинает выполняться с этой функции. Целое значение, возвращаемое та(п (), если оно вообще возвращается, предназначается «для системы>. Если не возвращается никакого значения, система получит значение, означающее успешное завершение. Ненулсвос значение, возвращенное пиип (), означает аварийное завершение. Обычно программы что-то выводят. Вот пример программы, которая выводит фразу «Здравствуй, лшр/гн и(пс(ш(е <швгсеат> спГтасп () ( вЫ" соШ <«'Здравствуй, марап; ) Строка и(пс(ис(е <(ов(геат> дает указание компилятору включить (гпс(щ(с) объявления средств ввода/вывода стандартной библиотеки, находящиеся в 1ойгеат.

Без этих объявлений выражение вЫ::соиГ « "Здравствуй, мирР,п" не имело бы смысла. Оператор «(«записать вь) записывает свой второй аргумент в первый. В данном случае, строковый литерал "Здравствуй, мир!~п" записывается в стандартный поток вывода вйс:соил Строковый литерал является последовательностью символов, заключенной в двойные кавычки. В строковом литерале обратная наклонная черта ~ч, за которой следует символ, означает один специальный символ.

В нашем случае, ~п означает символ перевода строки, поэтому выводится фраза Здравствуй, мир(, за которой следует новая строка. 3.3. Пространство имен стандартной библиотеки Стандартная библиотека определена в пространстве имен (б 2А, э 8.2) в(сь' Вот почему я написал вИзсоиб а не просто соиб Я явно обратился к стандартному соиб а не к какому-либо другому соил Каждое средство стандартной библиотеки становится доступным через какой-либо стандартный заголовочный файл наподобие <соМгеат>. Например и(лс1иде <виллу> Фтс(иде <йз~> вз 3.4.

Вывод делает доступными стандартные объявления иег!пя' и Ди!. Для обращения к ним мож- но воспользоваться префиксом и!сс:, например: иге!из!ггпу и = 'Четыре ноги хорошо, две пло-о-охоГ; игс!и!ги1<игдсигг!пузе!вуали; Для простоты я редко буду явно использовать префикс иес!л в примерах. Я также не всегда буду явно включать (Ф!пс/ис7е) заголовочные файлы. Для того чтобы откомпилировать и запустить фрагменты программ, приведенные здесь, вы должны будете включить соответствующие заголовочные файлы (перечисленные в гЗ 3.7.5, Э 3.8.6 и главе 16).

Кроме того, вы должны либо использовать префикс иес!:ь либо объявить все имена из иМ глобальными гз 8.2.3). Например: иЫс!иде <игг!пу> азгпу патеирасе иЫ; Иипди Невежество — блаженствог, //правильно:зссзпуозначаетзЫ:лыпил Как правило, объявление всех имен из данного пространства глобальными является признаком плохого стиля.

Однако ради краткости изложения фрагментов программ, иллюстрирующих средства языка и библиотеки, я опущу повторяющиеся П!пс)ис!е н квалнфикаторы и!с!з. В этой книге я почти всегда использую только стандартную библиотеку, так что если задействуется имя нз стандартной библиотеки, то это либо использование, предлагаемое стандартом, либо часть объяснения того, как может быть определено стандартное средство.

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

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

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

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