Эффективное использование STL

Мейерс Скотт

Литература

 

 

В книге имеются ссылки на большинство публикаций, перечисленных ниже, хотя многие ссылки присутствуют лишь в разделе «Благодарности». Публикации, которые в книге не упоминаются, помечены кружком вместо цифры.

Адреса URL ненадежны, поэтому я некоторое время сомневался, стоит ли приводить их в этом разделе. В итоге я решил, что даже если URL станет недействительным, предыдущее местонахождение документа поможет вам найти его по новому адресу.

 

Книги, написанные мной

[1] Scott Meyers, «Effective С++: 50 Specific Ways to Improve Your Programs and Designs» (second edition), Addison-Wesley, 1998, ISBN 0-201-92488-9. Также присутствует на компакт-диске «Effective С++» (см. далее).

[2] Scott Meyers, «More Effective С++: 35 New Ways to Improve Your Programs ацd Designs» (second edition), Addison-Wesley, 1996, ISBN 0-201-63371-Х. Также присутствует на компакт-диске «Effective С++» (см. далее).

• Scott Meyers, «Effective С++ CD: 85 Specific Ways to Improve Your Programs and Designs» (second edition), Addison-Wesley, 1999, ISBN 0-201-31015-5. Содержит материалы обеих книг, несколько журнальных статей по теме и кое-какие новинки из области электронных публикаций. За компакт-диском обращайтесь по адресу: . Информацию о новинках можно найти по адресам: jones/и http://www.rm'crosoft.com/Mind/1099/browsing/browsing.htm.

 

Книги, написанные другими авторами

[3] Nicolai М. Josuttis, «The С++ Standard Library: A Tutorial and Reference», Addison-Wesley, 1999, ISBN 0-201-37926-0. Незаменимая книга, которая должна быть у каждого программиста С++.

[4] Matthew Н. Austern, «Generic Programming and the STL», Addison-Wesley, 1999, ISBN 0-201-30956-4. Фактически представляет собой печатную версию материалов web-сайта SGI STL, .

[5] ISO/IEC, «International Standard, Programming Languages — С++», ISO/IEC 14882:1998(E), 1998. Официальный документ с описанием С++. Распространяется комитетом ANSI в формате PDF за $18 по адресу . .

[6] Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, «Design Patterns: Elements of Reusable Object-Oriented Software», Addison-Wesley, 1995, ISBN 0-201 -63361-2. Также распространяется на компакт-диске «Design Patterns CD», Addison-Wesley, 1998, ISBN 0-201-63498-8. Наиболее авторитетное руководство по идиомам проектирования. Каждый программист С++ должен знать описанные идиомы и держать под рукой эту книгу или компакт-диск.

[7] Bjarne Stroustrup, «The С++ Programming Language» (third edition), Addison-Wesley, 1997, ISBN 0-201-88954-4. Идиома «заквата ресурсов при инициализации», упоминаемая в совете 12, рассматривается в разделе 14.4.1 этой книги, а код из совета 36 приведен на с. 530.

[8] Herb Sutter, «Exceptional С++: 47 Engineering Puzzles, Programming Problems and Solutions», Addison-Wesley, 2000, ISBN 0-201-61562-2. Достойное дополнение к моей серии «Effective...». Я бы высоко оценил эту книгу в любом случае, даже если бы Херб не попросил меня написать к ней предисловие.

[9] Herb Sutter, «More Exceptional С++: 40 More Engineering Puzzles, Programming Problems and Solutions», Addison-Wesley, 2001, ISBN 0-201-70434-X. Судя по предварительной версии, которую я видел, эта книга ничуть не хуже предыдущей.

[10] Dov Bulka, David Mayhew, «Efficient С++: Performance Programming Techniques», Addison-Wesley, 2000, ISBN 0-201-37950-3. Единственная и поэтому лучшая книга, посвященная вопросам эффективности в С++.

[И] Matt Austern, «How to Do Case-Insensitive String Comparison», С++ Report, май 2000 г. Эта статья настолько полезна, что она воспроизводится в приложении А настоящей книги.

[12] Herb Sutter, «When Is a Container Not A Container?», С++ Report, май 1999 г. Статья доступна по адресу . Материал пересмотрен и дополнен в совете 6 книги «More Exceptional С++» [9].

[13] Herb Sutter, «Standard Library News: sets and maps», С++ Report, октябрь

1999г. Статья доступна по адресу . Материал пересмотрен и дополнен в совете 8 книги «More Exceptional С++» [9].

[ 14] Nicolai М. Josuttis, «Predicates vs. Function Objects», С++ Report, июнь 2000 г.

[15] Matt Austern, «Why You Shouldn't Use set - and What to Use Instead*, С++ Report, апрель 2000 г.

[16] P.J. Plauger, «HashTables», C/C++ Users Journal, ноябрь 1999 г. В статье описан подход реализации Dinkumware к хэшированным контейнерам (см. совет 25) и его отличия от альтернативных решений.

[17] Jack Reeves, «STL Gotcha's», С++ Report, январь 1997 г. Статья доступна по адресу .

[18] Jack Reeves, «Using Standard string in the Real World, Part 2», С++ Report, январь 1999 г. Статья доступна по адресу C++Report/v9901/abstract.htm.

[19] Andrei Alexandrescu, «Traits: The if-then-else of Types», С++ Report, апрель

2000г. Статья доступна по адресу view_recent_articles_c.cfm?ArticleID=402.

[20] Herb Sutter, «Optimizations That Aren't (In a Multithreaded World)», C/C++ Users Journal, июнь 1999 г. Статья доступна по адресу publications/optimizations.htm. Материал пересмотрен и дополнен в совете 16 книги «More Exceptional С++» [9]. ,

[21] Web-сайт SGI STL, . В совете 50 кратко описано содержимое этого сайта. Страница, посвященная потоковой безопасности контейнеров STL (взятая за основу при написании совета 12), накодится по адресу .

[22] Web-сайт Boost, . Содержимое сайта кратко описано в совете 50.

[23] Nicolai М. Josuttis, «User-Defined Allocator», allocator.html. Страница является частью сайта, посвященного превосходной книге Джосаттиса о стандартной библиотеке С++ [3].

[24] Matt Austern, «The Standard Librarim: What Are Allocators Good For?», форум экспертов C/C++ Users Journal (сетевое дополнение к журналу), ноябрь 2000 г., . Найти толковую информацию о распределителях памяти нелегко. Статья дополняет материал советов 10 и 11. Кроме того, в ней приведен пример реализации распределителя памяти.

[25] Klaus Kreft, Angelika Langer, «A Sophisticated Implementation of User-Defined Inserters and Extractors», С++ Report, февраль 2000 г.

[26] Leor^Zolman, «An STL Error Message Decryptor for Visual С++», C/C++ Users Journal, июль 2001 г. Статья и описанная в ней программа доступны по адресу .

[27] Bjarne Stroustrup, «Sixteens Ways to Stack a Cat», С++ Report, октябрь 1990 г. Статья доступна по адресу .net/dev/C&C++/Document/Stackcat.pdf.

•Herb Sutter, «Guru of the Week #74: Uses and Abuses of vector», сентябрь 2000 г. Задача с прилагаемым решением помогает разобраться в некоторых аспектак использования vector, в том числе в различиях между размером и емкостью (см. совет 14). Кроме того, в статье обсуждаются преимущества алгоритмов перед циклическими вызовами (см. совет 43).

•Matt Austern, «The Standard Librarian: Bitsets and Bit Vectors?», форум экспертов C/C++ Users Journal (сетевое дополнение к журналу), май 2001 г., . В статье описаны контейнеры bitset, которые сравниваются с vector, — эти темы кратко рассматриваются в совете 18.

 

Ошибки и опечатки

•Список ошибок и опечаток в книге «Effective С++»: BookErrata/ec++2e-errata.html.

[28] Список ошибок и опечаток в книге «More Effective С++»: . com/BookErrata/mec-H-errata.html.

•Список ошибок и опечаток на компакт-диске «Effective С++»: . .

[29] Обновления «More Effective С++»* относящиеся к auto_ptr: . com/cseng/titles/0-201-63371-X/auto_ptr.html.