Программирование >>  Разработка устойчивых систем 

1 ... 20 21 22 [ 23 ] 24 25 26 ... 196


class BinarySearchTest : public TestSuite::Test { enum { sz = 10 }: int* data:

int max: Наибольшее число

int current: Текущее число, не содержащееся в массиве.

Используется в notContainedC) Поиск следующего числа, не содержащегося в массиве int notContainedO ( while(data[current] + 1 == data[current + 1]) current++:

if(current >= sz) return max + 1; int retValue = data[current++] + 1: return retValue:

void setDataO { data = new int[sz]: assertdmax):

Набор входных данных. Пропускаем некоторые значения как для четных, так и для нечетных индексов. for(int i = 0: i < sz:

randO 2 == 0 ? max += 1 : max += 2) data[i++] = max:

void testlnBoundO ( Проверка для четных и нечетных позиций, присутствующих и отсутствующих в массиве. for(int i = sz: --i >=0:)

test (binarySearch(data. data + sz. data[i])): fordnt i = notContainedO: i < max: i = notContainedO) test (!binarySearch(data, data + sz, i)):

void testOutBoundsO ( Проверка нижних значений for(int i = data[0]: --i > data[0] - 100:) test (!binarySearch(data. data + sz, i)); Проверка верхних значений for(int i = data[sz - 1]: ++i < data[sz -1] + 100:) test (!binarySearch(data. data + sz, i)):

public: BinarySearchTestO { max = current = 0;

void runO { srand(time(0)): setDataO: testlnBoundO: testOutBoundsO: delete [] data:

int mainO ( srand(time(0)): BinarySearchTest t: t.run():

return t.reportO: } /:-

return 0:



Часть

Стандартная библиотека С++



Стандартный язык С++ не только включает все стандартные библиотеки С (с небольшими дополнениями и изменениями, обеспечивающими безопасность типов), но и дополняет их собственными библиотеками. Эти библиотеки гораздо мощнее своих прототипов из стандартного языка С. При переходе на них достигается практически такой же выигрыш, как при переходе с С на С++.

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

Учтите, что в главах этой части не приводится подробная документация по всем функциям и классам стандартной библиотеки С++. За полной документацией обращайтесь к другим источникам, прежде всего - Справочнику по стандартным библиотекам C/C++ П. Дж. Плаугера (Р. J. Plauger) по адресу http: www.dinkum-ware.com. Это превосходный сборник электронной документации по стандартным библиотекам в формате HTML; вы можете просматривать его в браузере при возникновении любых вопросов. Справочник можно изучать непосредственно в режиме подключения или приобрести его для локального просмотра. Он содержит документацию по библиотекам как С, так и С++. Электронная документация хороша не только своей доступностью, но и тем, что в ней удобно производить поиск.

В главе 3 (первой в этой части) представлен стандартный класс С++ string - мощный инструмент, упрощающий многие повседневные задачи обработки текста. Большинство операций с символьными строками, для которых в С приходилось писать несколько строк программного кода, выполняются в классе string вызовом одной функции.

Глава 4 посвящена библиотеке потоков ввода-вывода. Классы этой библиотеки предназначены для ввода-вывода файлов, строк и операций с системной консолью.

Хотя глава 5 не имеет прямого отношения к библиотеке, она необходима для лучшего понимания лвух следующих глав. В главе 6 рассматриваются общие алгоритмы стандартной библиотеки С++. Реализация на базе шаблонов позволяет применять эти алгоритмы к последовательностям объектов. Глава 7 посвящена стандартным контейнерам и их итераторам. Мы начинаем с алгоритмов, потому что для их объяснения достаточно массивов и контейнера vector (а с этим контейнером мы начали работать еще в начале первого тома). Кроме того, вполне естественно использовать с контейнерами стандартные алгоритмы, поэтому знакомство разумнее начать именно с алгоритмов.

Самый известный справочник по стандартной библиотеке С++ - Джосьютис Н. С++ Стандартная библиотека. Для профессионалов. СПб.: Питер, 2003.



1 ... 20 21 22 [ 23 ] 24 25 26 ... 196

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика