Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС STLΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 62

Автор Π‘ΠΊΠΎΡ‚Ρ‚ ΠœΠ΅ΠΉΠ΅Ρ€Ρ

Поклонники 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.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ контСксты