Анимация
JavaScript
|
Главная Библионтека чем приступить к главной части - вопросу для профессионала. Замечу, что указанный уровень сложности задач -- это мое субъективное мнение относительно того, насколько сложно будет решить ту или иную задачу большинству читателей, так что вы вполне можете обнаружить, что задача с уровнем сложности 7 решена вами гораздо быстрее, чем задача с уровнем сложности 5. Со времени выхода в свет предыдущих книг я получил немало писем, в которых читатели утверждали, что задача М сложнее (проще) задачи N. Это только подтверждает мой тезис о субъективности оценок и их зависимости от конкретных знаний и опыта читателя. Чтение книги от начала до конца - неплохое решение, но вы не обязаны поступать именно так. Вы можете, например, читать только интересующие вас разделы книги. За исключением того, что я называю "мини-сериями" (связанные между собой задачи с одинаковым названием и подзаголовками "Часть 1", "Часть 2" и т.д.), задачи в книге практически независимы друг от друга, и вы можете читать их в любом порядке. Единственная подсказка: мини-серии лучше читать вместе; во всем остальном - выбор за вами. Все примеры кода - всего лишь отрывки программ, если не оговорено иное, и не следует ожидать, что эти отрывки будут корректно компилироваться при отсутствии остальных частей программы. Для этого вам придется самостоятельно дописывать недостающие части. И последнее замечание - об URL: нет ничего более изменчивого, чем Web, и более мучительного, чем давать ссылки на Web в печатной книге: зачастую эти ссылки устаревают еще до того, как книга попадает в типографию. Так что ко всем приведенным в книге ссылкам следует относиться критически, и в случае их некорректности - пишите мне. Дело в том, что все ссылки даны через мой Web-узел www.gotw.ca, и в случае некорректности какой-либо ссылки я просто обновлю перенаправление к новому местоположению страницы (если найду ее) или укажу, что таковой больше нет (если не смогу се найти). Благодарности в первую очередь я хочу поблагодарить мою жену Тину (Tina) за ее терпение, любовь и поддержку, а также всю мою семью за то, что они всегда со мной, как при написании книг, так и в любое другое время. Без их безграничного терпения и участия книга бы не получилась такой, какой вы се видите. Я выражаю особую признательность редактору серии Бьерну Страуструпу (Bjarne Stroustrup), а также редакторам Питеру Гордону (Peter Gordon) и Дебби Лафферти (Debbie Lafferty), Тирреллу Альбах (Tyrrell AJbaugh), Бернарду Гафни (Bernard Gaffney), Курту Джонсону (Curt Johnson), Чанда Лири-Куту (Chanda Leary-Coutu), Чарльзу Лед-ди (Charles Leddy), Мелиндс Мак-Кейн (Malinda McCain), Чати Прасерсиху (Chuti Prasertsith) и всем остальным членам команды Addison-Wesley за их помощь и настойчивость в работе над данным проектом. Трудно представить себе лучшую команду для работы над данной книгой; их энтузиазм и помощь помогли сделать эту книгу тем, чем она, я надеюсь, является. Еще одна группа людей, заслуживающих особой благодарности, - это множество экспертов, чья критика и комментарии помогли сделать материал книги более полным, более удобочитаемым и более полезным. Особую благодарность я хотел бы выразить Бьерну Страуструпу (Bjarne Stroustrup), Дэйву Абрамсу (Dave Abrahams), Стиву Адамчику (sieve Adamczyk), Андрею Александреску (Andrei Alexandrescu), Чаку Алли-сону (Chuck Allison), Мэтту Остерну (Matt Austern), Йоргу Барфурту (Joerg Barfurth), Питу Беккеру (Pete Becker), Брендону Брею (Brandon Bray), Стиву Дьюхарсгу (Steve Dewhurst), Джонатану Кейвзу (Jonathan Caves), Питеру Димову (Peter Dimov), Хавьеру Эстрада (Javier Estrada), Аттиле Фехеру (Attila Feher), Марко Далла Гасперина (Marco Dalla Gasperina), Дугу Грсгору (Doug Gregor), Марку Холлу (Mark Hall), Кэвлину Хен- ни (Kevlin Henney), Говарду Хиннанту (Howard Hinnant), Кэю Хорстману (Cay Horstmann), Джиму Хайслопу (Jim HysJop), Марку Камииски (Mark Е. Kaminsky), Дэннису Манклу (Dennis Mancl), Брайену Мак-Намара (Brian McNamara), Скотту Мейерсу (Scott Meyers), Джеффу Пейлу (Jeff Peil), Джону Поггеру (John Potter), П. Плагеру (Р. J. Plauger), Мартину Себору (Martin Sebor), Джеймсу Слотеру (James Slaughter), Николаю Смирнову (Nikolai Smirnov), Джону Спайсеру (John Spicer), Яну Кристиану ван Вииклю (Jan Chrisliaan van Winkel), Дэвиду Вандевурду (Daveed Vandevoorde) и Биллу Всйду (Bill Wade). Все оставшиеся в книге ошибки, описки и неточности - только на моей совести. Еще одна благодарность - нашему щенку Франки (Frankie), который оттаскивал меня от стола и тащил дышать свежим воздухом, без чего, конечно, моя работа никогда не была бы закончена. Замечу, что Франки ничего не знает о программировании, оптимизации, архитектуре программного обеспечения, и при этом он всегда выглядит счастливым и довольным. Над этим стоит задуматься... Герб Саттер (Herb Sutter) Сиэтл, май 2004 От издательства Вы. читатель этой книги, и есть главный ее критик и комментатор. Мы ценим ваше мнение и хотим знать, что было сделано нами правильно, что можно было сделать лучше и что еше вы хотели бы увидеть изданным нами. Нам интересно услышать и любые другие замечания, которые вам хотелось бы высказать в наш адрес. Мы ждем ваших комментариев и надеемся на них. Вы можете прислать нам бумажное или электронное письмо, либо просто посетить наш Wcb-ссрвер и оставить свои замечания там. Одним словом, любым удобным для вас способом дайте нам знать, нравится или нет вам эта книга, а также выскажите свое мнение о том, как сделать наши книги более интересными для вас. Посылая письмо или сообщение, не забудьте указать название книги и ее авторов, а также ваш обратный адрес. Мы внимательно ознакомимся с вашим мнением и обязательно учтем его при отборе и подготовке к изданию последующих книг. Наши координаты: E-mail: inf oowilliamspublishlng , com WWW: http : www . will iamspubl ishing . com Информация для писем из: России: 115419, Москва, а/я 783 Украины: 03150, Киев, а/я 152 Обобщенное программирование и стандартная библиотека с++ Одной из наиболее мощных возможностей С++ является поддержка обобщенного программирования. Эта возможность находит непосредственное отражение в гибкости стандартной библиотеки С++, в особенности в контейнерах, итераторах и алгоритмах, известных под названием стандартной библиотеки шаблонов (Standard Template Library - STL). Так же, как и предыдущая книга [Sutter02], эта книга начинается с задач, которые привлекают наше внимание к некоторым хорошо знакомым частям STL, в частности к векторам и строкам. Сможете ли вы избежать широко распространенных ловушек при использовании такого базового контейнера STL, как вектор? Как вы вьшолните обычные манипуляции со строками в С++? Какие уроки в плане конструирования библиотек вы сможете извлечь для себя из STL? После того как мы разберемся с предопределенными шаблонами STL, мы обратимся к более общим вопросам, связанным с шаблонами и обобщенным программированием на С+ + . Как можно избежать при разработке собственного шаблонного кода его необобщенности? Почему специализация шаблонов функций - не лучшая идея, и что следует делать вместо этого? Как корректно и переносимо добиться тех же результатов, которые дают отношения дружественности? И что нам дает ключевое слово export? Эти и другие вопросы будут рассмотрены нами в разделе, посвященном обобщенному программированию и стандартной библиотеке С++. 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 |