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

Бьерн Страуструп. Язык программирования С++. Специальное издание (2011) (1004033), страница 24

Файл №1004033 Бьерн Страуструп. Язык программирования С++. Специальное издание (2011) (Бьерн Страуструп. Язык программирования С++. Специальное издание (2011)) 24 страницаБьерн Страуструп. Язык программирования С++. Специальное издание (2011) (1004033) страница 242018-10-07СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Добавить в класс вес!о«такие операции довольно просто, но его обшность и гибкосп препятствуют достижению высокой эффективности, которой придается важное значение в серьезных вычислительных задачах. Как следствие, в стандартной библиотеке имеется еше один векторный тип, который называется юайитау. Он не настолько обший, зато хорошо поддается оптимизации при вычислениях: 1етр!а!в<с!аяз Т> с1азя га(аггау ( У... Ть орегагог(] (яае 1) 1 Глава 3. Обзор стандартной библиотеки 108 Тил я!те ! есть беззнаковый целочисленный тип, который используется в конкретных системах для индексации массивов. Для класса яа!аггау реализованы обычные арифметические операции и наиболее общие математические функции.

Например: 77 Стандартная функаия из <иа1аггау>, вычисляющая модуль: тетр1ате<с!аея Т> га!аггау< Т> аья (сопя! «а1аггау< Т> ь ); го!И Т(га1аггау<доиЫе>в а1, га1аггау<4оиЫе>а а2) 1 га1аггау<йоиЫе> а = а1*3. 14га2/а1 г а2 м= а1*3.14; а = аЬя(а); ИоиЫе И = а2[7] г 77 ... ) Подробности см. в 522.4. 3.9.3. Поддержка базовых вычислительных операций Естественно, стандартная библиотека содержит элементарные математические функции — такие как !ол(), ро!е() и соя() для типов с плавающей запятой; см. 822.3. Для всех встроенных типов предусмотрены классы, описывающие их характерные свойства, например, наибольший показатель степени для чисел с плавающей запятой; см.

822.2. 3.10. Основные средства стандартной библиотеки Средства стандартной библиотеки можно классифицировать следующим образом: 1. Базовая поддержка языка программирования (вьщеление памяти; определение типа на стадии выполнения); см. 816.1.3. 2. Стандартная библиотека языка С (с минимальнейщими изменениями для предотвращения нарушений в системе типов); см, 816.1,2, 3. Строки и потоки ввода/вывода (с поддержкой национальных алфавитов и локализации); см, главы 20 и 21. 4. Набор контейнеров (таких как нес!ог, !Ы и отар) и алгоритмов лля работы с ними (прохода по всем элементам, сортировки, слияния и тзь); см, главы 16, 17, 18 и 19.

5. Поддержка численных расчетов (комплексные числа, вектора для математических расчетов, ВГАБ-подобные и обобщенные срезы, семантика оптимизации); см. главу 22. Главными критериями для включения класса в стандартную библиотеку явля- лись следующие соображения: будет ли он использоваться любыми С++-програм- мистами (экспертами и новичками); может ли он быть представлен в обшей форме, не влекущей за собой заметных накладных расходов по сравнению с более просты- ми средствами; можно ли легко научиться его простейшему применению.

По сути Э 11 Советы 109 дела, стандартнан библиотека предоставляет наиболее фундаментальные реализации основных структур данных вкупе с фундаментальными алгоритмами их обработки. Любой алгоритм работает с любым контейнером без каких-либо преобразований. Такая структура библиотеки, обычно называемая ЯТЬ (5(апдагд Тещр!асе (з))гасу; 8(ерапот, 1994), позволяет пользователям легко создавать свои собственные контейнеры и алгоритмы помимо имеющихся стандартных, и заставлять их согласованно работать с последними. 3.11. Советы 1.

Не изобретайте колесо заново; использунте библиотеки. 2. Не верьте в чудеса; разберитесь, что делают ваши библиотеки, как они это делают и какова цена их деятельности. 3. Когда есть выбор, отдавайте предпочтение стандартной библиотеке. 4. Не думайте, что стандартная библиотека идеально подходит для всех задач. 5. Не забывайте про директиву №сис1№де для включения заголовочных файлов с определением средств стандартной библиотеки; 93.3.

6. Помните, что все средства стандартной библиотеки определены в пространстве имен зсд; 93.3. 7. Вместо строк типа сйаг* пользуйтесь строками типа зсг(и81 93.5, 93.6. 8. Если сомневаетесь — используйте вектора с проверкой диапазона индексов (такие как Гес); 93.7.2. 9. Используйте гессог<2>, 1Ы<2>, тир<лисеу,га!ие> вместо Т(1; 93.7.1, 93.7.3, 93.7.4. 10. При добавлении элементов в контейнер используйте ризЬ Ьас7с() или Ьас7с сизегсег(); 93.7.3, 93.8.

11. Лучше использоватьризЬ Ьас/с() для векторов, чем геаВос() для встроенных массивов; 93.8. 12. Самые общие исключения перехватывайте в стартовой функции тат(); 93.7.2. Часть! Основные средства Здесь описываются встроенные типы языка С++ и средства построения программ на их основе. Представлено С-подмножество языка С++ и его дополнительные возможности для поддержки традиционных стилей программирования. Также обсуждаются базовые средства составления программ на С++ из логических и физических частей.

Главы 4. Типы и объявления 5. Указатели, массивы и структуры б. Выражения и операторы 7. Функции 8. Пространства имен и исключения 9. Исходные файлы и программы Типы и объявления Не соглашайтесь ни на что, кроме совершенства! — Аноним Совершенство достигается только к моменту краха. — К.Н. Паркинсон Типы — фундаментальные типы — логические значения — символы — символьные литералы — целые — целые литералы — типы с плаваюшей запятой — литералы с плавающей запятой — размеры — зоЫ вЂ” перечисления — объявления— имена — область видимости — инициализация — объекты — ЗуреФеУ вЂ” советы— упражнения.

4.1. Типы Рассмотрим формулу х =у ьУ(г); 77х - переменная с плавающей запятой 77у - целая переменная с ночазьным значением 7 Уз — функция с аргументом целого типа, 7 возвращающая число с плавающей запятой ззааг Х; Гпз у=7; гзоаз у'(ззи); Чтобы это выражение могло использоваться в программе на С++, имена х, у и г" должны быть обьявлены надлежашим образом. То есть программист должен указать, что некие сушности, поименованные х, у ну' ,реально сушествуют, и что они имеют типы, для которых операции = (присваивание), + (сложение) и () (вызов функции) имеют точный смысл.

Каждое имн (идентификатор) в программе на С++ ассоциируется с некоторым типом. Именно тип определяет, какие операции можно выполнять с этим именем (то есть с именованной сушностью), и как интерпретируются эти операции. Например, следуюшне объявления 114 Глава 4. Типы и объявления делают наш текущий пример осмысленным. Поскольку у объявлена переменной целого типа, то ей можно присваивать значения, ее можно использовать в арифметических выражениях и т.д. С другой стороны, 7'объявлена как функция, принимающая целый аргумент, так что ее можно вызывать с подходящим аргументом. В данной главе рассматриваются фундаментальные типы (84.1.1) и объявления (84.9).

Примеры в ней просто иллюстрируют свойства языка; они не предназначены для демонстрации чего-либо практически полезного. Изощренные и реалистичные примеры будут приводиться в последующих главах, когда большая часть языка С++ будет уже рассмотрена. Здесь же перечисляются базовые элементы, из которых состоят все программы на языке С++. Вы должны освоить эти элементы плюс терминологию и сопутствующий им несложный синтаксис, чтобы выполнять законченные проекты на С++, и особенно для того, чтобы иметь возможность разбираться в чужих кодах.

Тем не менее, для изучения последующих глав глубокого понимания всех рассмотренных в настоящей главе вопросов не требуется. Достаточно бегло рассмотреть основные концепции, а за необходимыми деталями вернуться позднее. 4.1.1. Фундаментальные типы Язык С++ обладает набором фундаментальных типов, соответствующих базовым принципам организации компьютерной памяти и самым общим способам хранения данных: ° 84.2 Логический тип (Ьоо() ° 84.3 Символьные типы (такие как сйас) ° 84.4 Целые типы (такие как 1пг) ° 84.5 Типы с плавающей запятой (такие как НоиЫе) Дополнительно, пользователь может объявить ° 84.8 Перечислимые типы для представления конечного набора значений (епит) Также имеется ° 84.7 Тип яоЫ, указывающий на отсутствие информации Поверх перечисленных типов можно строить следующие типы; ° 85.1 Указательные типы (такие как 1пг") ° 85.2 Массивы (такие как сйае(1) ° 85.5 Ссылочные типы (такие как ЫоиЫеь) ° 85.7 Структуры данных и классы (глава 10) Логический, символьные и целые типы называются интегральными типами.

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

Логический тип 4.2. Логический тип Переменные логического типа Ьоо1 могут принимать лишь два значения — «ие (истина) или уа1ге (ложь). Логические переменные служат для хранения результатов логических операций. Например: ьо!а)'(!п! а, !пг Ы ( Ьоо! Ы = а==-Ь! 77 = есть присваивание, == проверка на равенство; 77 ... Если у целых переменных а и Ь значения одинаковые, то Ы будет равно «ие; в противном случае Ы станет равным )а!ве. Часто тип Ьоо1 служит типом возврата функций, проверяющих выполнение некоторого условия (предикатные функции, нли просто предикаты).

Например: Ьоо1 !з орел (е!1е*) ! Ьоо1яееазее(!и! а, !и! Ь) (ге!игп а>Ь! ) По определению, прн преобразовании к типу !и! значению !«ие сопоставляется 1, а значению)а)зе — О. В обратном направлении целые значения неявно преобразуются в логические следующим образом: ненулевые значения трактуются как «ие, а О как Га1зе. Например; У Ьоо!(7) есть оке, так что Ь инициализируется значением оке 77 !трсие) есть 1, так что ! инициализируется значением 1 Ьоо! Ь=7! !и! 1= !еие; В арифметических и логических выражениях логические значения сначала преобразуются в целые, после чего выражения и вычисляются.

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

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

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

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