Анимация
JavaScript
|
Главная Библионтека библиотека С++ Вскоре после своего появления язык С+н- превратился в фактический стандарт объектно-ориентированного профаммирования. Отсюда логично возникла потребность в стандартизации. Только при наличии общ;епринятого стандарта можно написать программу, работающую на разных платформах, от PC до больших машин. Кроме того, при наличии стандартных библиотек программист использует универсальные компоненты и без потери переносимости программ работает на более высоком уровне абстракции, а не пишет весь код с самого начала. Процесс стандартизации С+-+- был начат в 1989 году международным комитетом ANSI/ISO. Комитет разработал стандарт, основанный на знаменитых книгах Бьярна Страуструпа «The С++ Programming Languages- и «The Annotated С++ Reference Manuals, В 1997 году работа над стандартом была завершена, а в 1998 году он был принят в качестве международного стандарта ISO и ANSI, Процесс стандартизации включал разработку стандартной библиотеки С ++, расширяющей базовые возможности языка и содержащей ряд компонентов общего назначения. Используя средства определения новых абстрактных и обобщенных типов, библиотека предоставляет в расхюряжение программиста набор общих классов и интерфейсов. В частности, стандартная библиотека содержит: О строковые типы; О различные структуры данных (например, динамические массивы, связанные списки и бинарные деревья); О различные алгоритмы (например, алгоритмы сортировки); О классы для представления числовых данных; О классы ввода-вывода; О классы, обеспечивающие интернационализацию программ. Все перечисленные возможности доступны через относительно простой программный интерфейс. Стандартные компоненты чрезвычайно важны для многих программ. В наши дни обработка данных обычно сопряжена с вводом, обработкой и выводом больших объемов данных, которые часто представляются в текстовом формате. Стандартную библиотеку нельзя назвать простой и понятной. Чтобы работать с ее компонентами и пользоваться их преимуществами, недостаточно простого перечисления классов и их функций - требуется хорошее объяснение основных концепций и важных подробностей. Именно с этой целью и была написана эта книга. Сначала читатель знакомится с библиотекой и всеми ее компонентами на концептуальном уровне, а затем ползает более подробную информацию, необходимую для практического программирования. Принципы использования всех компонентов поясняются конкретными примерами. Таким образом, книга представляет собой подробное введение в библиотеку С+-ь как для новичков, так и для более опытных программистов. Вооружившись новыми знаниями, вы сможете в полной мере использовать возможности стандартной библиотеки С+-+. Необходимо отметить, что далеко не весь материал книги прост и очевиден. Стандартная библиотека весьма гибка, однако в любых нетривиальных ситуациях гибкость не дается даром. Учтите, что использование библиотеки иногда сопряжено со всевозможными каверзами и подвохами; на них указывается по мере изложения материала, а также предлагаются возможные способы обойти проблемы. Что необходимо знать читателю Предполагается, что читатель уже владеет языком С++ (в книге описаны стандартные компоненты С++, но не сам язык). Он должен быть знаком с концепциями классов, наследования, шаблонов и обработки ошибок. Тем не менее книга не требует досконального знания всех тонкостей языка. Действительно важные подробности описаны в книге, а мелочи существенны в основном для программистов, занимающихся реализацией библиотеки, а не ее использованием. Следует помнить, что язык изменялся в процессе стандартизации, поэтому некоторые ваши знания могут оказаться устаревшими. На с, 25 приведен краткий обзор основных средств языка, необходимых для использования библиотеки. Прочитайте этот материал, если вы еще недостаточно хорошо освоили все новые средства С++ (например, ключевое слово typename и концепцию пространств имен). Стиль и структура книги Многие компоненты стандартной библиотеки С++ в той или иной степени зависят друг от друга, поэтому трудно описывать отдельные компоненты без упоминания остальных частей. Отсюда вытекают несколько возможных вариантов подачи материала. Например, можно было бы приводить описания в порядке их следования в стандарте С++. Однако просто описывать компоненты библиотеки С++ с самого начала - не лучшее решение. Также можно было бы начать с обзора всех компонентов, за которым расположить главы с подробными описаниями. Наконец, компоненты можно было бы отсортировать и попытаться выстроить их в порядке, обеспечивающем минимальное количество перекрестных ссылок. В итоге автор останови.тся на варианте, в котором сочетаются все три решения. Книга начинается с краткого изложения базовых концепций и вспомогательных 20 Глава!. О книге средств библиотеки. Далее следуют описания основных компонентов, каждое из которых занимает одну или несколько глав. На первом месте стоит стандартная библиотека шаблонов (STL). Бесспорно, STL является самой мощной, самой сложной и самой интересной частью библиотеки С-ь+, а ее архитектура в значительной степени влияет на другие компоненты. Затем рассматриваются более очевидные компоненты - специализированные контейнеры, строковые и числовые классы. Вероятно, следующий компонент - библиотека lOStream - уже знаком читателю и используется им в практической работе, В завершение будут рассмотрены проблемы интернационализации, которые оказывают некоторое влияние на работу библиотеки lOStream. Знакомство с каждым компонентом начинается с описания целей и архитектурных решений, сопровождаемых примерами. Далее следует углубленное описание различных способов использования компонента и возникающих при этом проблем. Описание, как правило, заканчивается справочным разделом, в котором приводятся сигнатуры и определения классов компонента и их функций. Ниже дано краткое содержание книги. В первых четырех главах представлена вводная информация о книге и стандартной библиотеке С++ в целом. О Глава 1, «О книге*». В этой главе (которую вы читаете в настоящий момент) представлены тема книги и ее содержание. О Глава 2, «Знакомство с С++ и стандартной библиотекой». Краткий обзор истории стандартной библиотеки С++ и контекста ее стандартизации. Кроме того, в этой главе приводится общая информация по теме книги, в том числе описания новых языковых средств и концепции сложности. О Глава 3, «Общие концепции». Базовые принципы строения библиотеки, понимание которых необходимо для использования ее компонентов. В частности, в этой главе представлено пространство имен std, формат заголовочных файлов и общие средства обработки ошибок и исключений. О Глава 4, «Вспомогательные средства*». Здесь рассматриваются некоторые вспомогательные средства, предназначенные для пользователей библиотеки и для самой библиотеки. В частности, описаны вспомогательные функции тах(), min() и swapO, типы pair и auto ptr, а также тип numericjimits, предоставляющий дополнительную информацию о числовых типах данных в зависимости от реализации. В главах с 5-й по 9-ю описаны различные аспекты STL. О Глава 5, «Стандартная библиотека шаблонов». В этой главе представлены общие концепции стандартной библиотеки шаблонов (STL) - сборника контейнеров и алгоритмов, используемых для обработки наборов данных. Обстоятельно изложены основные принципы работы, проблемы и специальные приемы программирования, а также роли основных частей библиотеки. О Глава 6, «Контейнеры STL*. Глава посвящена контейнерным классам STL. Сначала мы рассмотрим различия между векторами, деками, списками, простыми и ассоциативными мрюжествами, затем проанализируем сходство между ними; материал поясняется типичными примерами использования контейнеров. Глава завершается перечислением всех функций контейнеров в виде удобного справочника. [ 0 ] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 |