» » » Скотт Мейерс - Эффективное использование STL


Авторские права

Скотт Мейерс - Эффективное использование STL

Здесь можно скачать бесплатно "Скотт Мейерс - Эффективное использование STL" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство Питер, год 2002. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Скотт Мейерс - Эффективное использование STL
Рейтинг:
Название:
Эффективное использование STL
Издательство:
Питер
Год:
2002
ISBN:
5-94723-382-7
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

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

Описание и краткое содержание "Эффективное использование STL" читать бесплатно онлайн.



В этой книге известный автор Скотт Мейерс раскрывает секреты настоящих мастеров, позволяющие добиться максимальной эффективности при работе с библиотекой STL.

Во многих книгах описываются возможности STL, но только в этой рассказано о том, как работать с этой библиотекой. Каждый из 50 советов книги подкреплен анализом и убедительными примерами, поэтому читатель не только узнает, как решать ту или иную задачу, но и когда следует выбирать то или иное решение — и почему именно такое.






Поклонники STL также оценят богатый ассортимент библиотек, содержащих объекты функций и другие вспомогательные средства. В этих библиотеках заново спроектированы и реализованы некоторые концепции, заложенные в основу объектов функций и адаптеров STL, в результате чего были сняты некоторые искусственные ограничения, снижающие практическую полезность стандартных функторов. В частности, при попытках использовать bind2nd с функциями mem_fun и mem_fun_ref (см. совет 41) для привязки объекта к параметрам функции класса выясняется, что при передаче параметра по ссылке код, скорее всего, компилироваться не будет. Аналогичный результат достигается использованием not1 и not2 с ptr_fun и функцией, получающей параметр по ссылке. Причина в обоих случаях заключается в том, что в процессе специализации шаблона многие платформы STL генерируют «ссылку на ссылку», но в C++ такая конструкция запрещена (в настоящее время Комитет по стандартизации рассматривает возможность внесения изменений в Стандарт для решения этой проблемы). Пример проблемы «ссылки на ссылку»:

class Widget {

public:

 …

 int readStream(istream& stream); // Функции readStream

 …                                // параметр передается

};                                // по ссылке


vector<Widget*> vw;

for_each(                                   // Большинство платформ STL

 vw.begin(), vw.end(),                      // при этом вызове

 bind2nd(mem_fun(&Widget::readStream), cin) // пытается сгенерировать

);                                          // ссылку на ссылку.

                                            //Фрагмент не компилируется!

Объекты функций Boost решают эту и многие другие проблемы, а также значительно повышают выразительность объектов функций.

Если вы интересуетесь потенциальными возможностями объектов функций STL и хотите познакомиться с ними поближе, поскорее посетите сайт Boost. Если объекты функций вас пугают и вы считаете, что они существуют только для умиротворения малочисленных апологетов Lisp, вынужденных программировать на C++, все равно посетите сайт Boost. Библиотеки объектов функций Boost важны, но они составляют лишь малую часть полезной информации, находящейся на сайте.

Литература

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

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

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

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

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

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

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

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

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

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

[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[4]. Также распространяется на компакт-диске «Design Patterns CD», Addison-Wesley, 1998, ISBN 0-201-63498-8. Наиболее авторитетное руководство по идиомам проектирования. Каждый программист C++ должен знать описанные идиомы и держать под рукой эту книгу или компакт-диск.

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

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

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

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

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

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

[13] Herb Sutter, «Standard Library News: sets and maps», C++ Report, октябрь 1999г. Статья доступна по адресу http://www.gotw.ca/publications/mill11.htm. Материал пересмотрен и дополнен в совете 8 книги «More Exceptional C++» [9].

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

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

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

[17] Jack Reeves, «STL Gotcha's», C++ Report, январь 1997 г. Статья доступна по адресу http://www.bleading-edge.com/Publications/C++Report/v9701/abstract.htm.

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

[19] Andrei Alexandrescu, «Traits: The if-then-else of Types», C++ Report, апрель 2000 г. Статья доступна по адресу http://www.creport.com/html/from_pages/view_recent_articles_c.cfm?ArticleID=402.

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

[21] Web-сайт SGI STL, http://www.sgi.com/tech/stl. В совете 50 кратко описано содержимое этого сайта. Страница, посвященная потоковой безопасности контейнеров STL (взятая за основу при написании совета 12), накодится по адресу http://www.sgi.com/tech/stl/thread_safety.html.

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

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

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

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

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

[27] Bjarne Stroustrup, «Sixteens Ways to Stack a Cat», C++ Report, октябрь 1990 г. Статья доступна по адресу http://www.csdn.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 г., http://www.cuj.com/expeits/1905/austern.htm. В статье описаны контейнеры bitset, которые сравниваются с vector<bool>, — эти темы кратко рассматриваются в совете 18.

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

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

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

• Список ошибок и опечаток на компакт-диске «Effective C++»: http://www. aristeia.com/BookErrata/cd1e-errata.html.

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

Локальные контексты


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Эффективное использование STL"

Книги похожие на "Эффективное использование STL" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Скотт Мейерс

Скотт Мейерс - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Скотт Мейерс - Эффективное использование STL"

Отзывы читателей о книге "Эффективное использование STL", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.