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

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

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

Π’Ρ€ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ часто, Ρ‡Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€ ссылки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ указываСтся. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΈΠ· Π½ΠΈΡ…, ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΉ стандарт C++ [5], Π² ΠΊΠ½ΠΈΠ³Π΅ имСнуСтся просто Β«Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΎΠΌΒ». Π”Π²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ β€” ΠΌΠΎΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎ C++, Β«Effective C++Β» [1] ΠΈ Β«More Effective C++Β» [2].

STL ΠΈ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹

Π’ ΠΊΠ½ΠΈΠ³Π΅ я часто ΡΡΡ‹Π»Π°ΡŽΡΡŒ Π½Π° Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ C++, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся пСрСносимой, стандартной вСрсии C++. ВСорСтичСски всС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² ΠΊΠ½ΠΈΠ³Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²ΠΎ всСх рСализациях C++. К соТалСнию, Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это Π½Π΅ Ρ‚Π°ΠΊ. ВслСдствиС Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΎΠΊ Π² компиляторах ΠΈ рСализациях STL Π΄Π°ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ компилируСтся ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ. Π’ самых Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… случаях описываСтся ΡΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Иногда самый простой Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ STL (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π‘). Π§Π΅ΠΌ большС Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с STL, Ρ‚Π΅ΠΌ Π²Π°ΠΆΠ½Π΅Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ компилятор ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Когда Ρƒ программиста Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с компиляциСй ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΠ½ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΈΠ½ΠΈΡ‚ Π²ΠΎ всСм компилятор. Однако ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с STL компилятор ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ порядкС, Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ связанными с ошибками Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊΠ°ΠΊ ΠΎΡ‚ компилятора, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° STLΒ», ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ понимаСтся комбинация ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ компилятора с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ STL. Если Π² ΠΊΠ½ΠΈΠ³Π΅ говорится ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ компилятора, Π·Π½Π°Ρ‡ΠΈΡ‚, Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ компилятор. Но Ссли Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ STL, это слСдуСт ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ: Β«Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚ Ρ‚ΠΎ Π»ΠΈ компилятор, Ρ‚ΠΎ Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π° ΠΌΠΎΠΆΠ΅Ρ‚, ΠΈ Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅Β».

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ я Π³ΠΎΠ²ΠΎΡ€ΡŽ ΠΎ компиляторах Π²ΠΎ мноТСствСнном числС. Π― искрСннС ΡƒΠ±Π΅ΠΆΠ΄Π΅Π½ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… компиляторах ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Π΅Π΅ качСство (ΠΈ особСнно ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ). Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, использованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… компиляторов ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°ΡΠΏΡƒΡ‚Π°Ρ‚ΡŒ Π³ΠΎΡ€Π΄ΠΈΠ΅Π² ΡƒΠ·Π΅Π» сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, Π²Ρ‹Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ STL (Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ΅ этих сообщСний приводятся Π² совСтС 49).

УдСляя особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ соотвСтствовал стандартам, я Ρ‚Π°ΠΊΠΆΠ΅ ΡΡ‚Ρ€Π΅ΠΌΠ»ΡŽΡΡŒ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ конструкций с нСпрСдсказуСмым ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. ΠŸΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΡ выполнСния Ρ‚Π°ΠΊΠΈΡ… конструкций Π½Π° стадии Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ. К соТалСнию, ΠΈΠ½ΠΎΠ³Π΄Π° эти конструкции ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ трСбуСтся, Π° это создаСт Π²Ρ€Π΅Π΄Π½Ρ‹Π΅ иллюзии. Блишком ΠΌΠ½ΠΎΠ³ΠΈΠ΅ программисты ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ нСпрСдсказуСмоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ всСгда Π²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ сбоям ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ сСгмСнтам ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ катастрофичСским послСдствиям. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ½ΠΊΠΈΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, искаТСниС Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅); ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·Π½Ρ‹Π΅ запуски ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ. Π£ нСпрСдсказуСмого повСдСния Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: Β«Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρƒ мСня, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρƒ тСбя, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²ΠΎ врСмя тСстирования, Π½ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρƒ самого Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Β». НСпрСдсказуСмого повСдСния слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ, поэтому я особо Π²Ρ‹Π΄Π΅Π»ΡΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стандартныС случаи Π² ΠΊΠ½ΠΈΠ³Π΅. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π½Π°Ρ‡Π΅ΠΊΡƒ ΠΈ ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ ситуации, Ρ‡Ρ€Π΅Π²Π°Ρ‚Ρ‹Π΅ нСпрСдсказуСмым ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ.

ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ ссылок

ΠŸΡ€ΠΈ описании STL практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ стороной подсчСт ссылок. Как Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² совСтах 7 ΠΈ 33, любая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, основанная Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, практичСски всСгда основана Π½Π° подсчСтС ссылок. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, подсчСт ссылок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… рСализациях string, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² совСтС 15, это ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° приходится ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ Π·Π½Π°ΠΊΠΎΠΌ с основными ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° подсчСта ссылок, Π° Ссли Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌ β€” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² любом ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ΅ C++ срСднСго ΠΈΠ»ΠΈ высокого уровня. НапримСр, Π² ΠΊΠ½ΠΈΠ³Π΅ Β«More Effective C++Β» ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² совСтах 28 ΠΈ 29. Но Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ подсчСт ссылок, ΠΈ Π½Π΅ Π³ΠΎΡ€ΠΈΡ‚Π΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ поскорСС ΡƒΠ·Π½Π°Ρ‚ΡŒ, Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡ‚Π΅ΡΡŒ. ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΊΠ½ΠΈΠ³ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ всС Ρ€Π°Π²Π½ΠΎ останСтся Π²ΠΏΠΎΠ»Π½Π΅ доступным.

string ΠΈ wstring

ВсС, Ρ‡Ρ‚ΠΎ говорится ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ string, Π² Ρ€Π°Π²Π½ΠΎΠΉ стСпСни относится ΠΈ ΠΊ wstring, Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³Ρƒ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ символов. БоотвСтствСнно, Π»ΡŽΠ±Ρ‹Π΅ упоминания ΠΎ связи ΠΌΠ΅ΠΆΠ΄Ρƒ string ΠΈ char ΠΈΠ»ΠΈ char* относятся ΠΈ ΠΊ связи ΠΌΠ΅ΠΆΠ΄Ρƒ wstring ΠΈ wchar_t ΠΈΠ»ΠΈ wchar_t*. Π˜Π½Π°Ρ‡Π΅ говоря, отсутствиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ ΠΎ строках с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ символов Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² STL ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ string ΠΈ wstring ΡΠ²Π»ΡΡŽΡ‚ΡΡ спСциализациями ΠΎΠ΄Π½ΠΎΠ³ΠΎ шаблона basic_string.

ВСрминология

Данная ΠΊΠ½ΠΈΠ³Π° Π½Π΅ являСтся ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΎΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ уровня ΠΏΠΎ STL. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ Π²Π»Π°Π΄Π΅Π΅Ρ‚ основными ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°ΠΆΠ½Ρ‹, Ρ‡Ρ‚ΠΎ я счСл Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ особо Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ….

β€’ ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ vector, string, deque ΠΈ list относятся ΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ стандартных ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². К ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ стандартных ассоциативных ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² относятся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ set, multiset, map ΠΈ multimap.

β€’ Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ дСлятся Π½Π° ΠΏΡΡ‚ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Π² соотвСтствии с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ опСрациями. Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Π²ΠΎΠ΄Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для записи ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° построСны ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния-записи Π² ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ„Π°ΠΉΠ»Π°Ρ…), поэтому Π½Π΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ самыми распространСнными прСдставитСлями ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ istream_iterator ΠΈ ostream_iterator соотвСтствСнно.

ΠŸΡ€ΡΠΌΡ‹Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ свойствами ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°, Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ запись Π² любой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ β€” ΠΈΠΌΠΈ Π½Π΅ поддСрТиваСтся, поэтому ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² прямом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ эффСктивности. ВсС стандартныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ STL ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, прСвосходящиС эту ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎ своим возмоТностям, Π½ΠΎ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² совСтС 25, ΠΎΠ΄Π½Π° ΠΈΠ· Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² основана Π½Π° использовании прямых ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ односвязных списков (см. совСт 50) Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ прямыС ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

ДвусторонниС ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° прямыС ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² прямом, Π½ΠΎ ΠΈ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Они ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всСми стандартными ассоциативными ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ list.

Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ доступа ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ всСми возмоТностями двусторонних ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π½ΠΎ ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² прямом ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ расстояниС Π·Π° ΠΎΠ΄ΠΈΠ½ шаг. Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ доступа ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ vector, string ΠΈ deque. Π’ массивах Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ доступа обСспСчиваСтся указатСлями.

β€’ Π›ΡŽΠ±ΠΎΠΉ класс, ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ operator()), являСтся классом Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€Π°. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, созданныС Π½Π° основС Ρ‚Π°ΠΊΠΈΡ… классов, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π² STL ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ свободно Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Β«ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈΒ» функциями, поэтому ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉΒ» часто ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ C++, Ρ‚Π°ΠΊ ΠΈ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€Ρ‹.

β€’ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ bind1st ΠΈ bind2nd Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ функциями привязки (binders).

Π Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²ΠΎΠΌ STL ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ слоТности, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ограничСния объСма Ρ€Π°Π±ΠΎΡ‚Ρ‹, выполняСмой Π»ΡŽΠ±Ρ‹ΠΌΠΈ опСрациями STL. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, программист ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π² зависимости ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ STL. Π“Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ слоТности Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ количСства элСмСнтов Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ (ΠΏ).

β€’ ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ с постоянной ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ выполняСтся Π·Π° врСмя, Π½Π΅ зависящСС ΠΎΡ‚ ΠΏ. НапримСр, вставка элСмСнта Π² список выполняСтся с постоянной ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. Бколько Π±Ρ‹ элСмСнтов Π½ΠΈ содСрТал список, ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½, вставка Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ практичСски ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ врСмя.

Π’Π΅Ρ€ΠΌΠΈΠ½ «постоянная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΒ» Π½Π΅ стоит Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ. Он ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ врСмя выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ остаСтся строго постоянной Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ, Π° лишь Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π½Π΅ зависит ΠΎΡ‚ ΠΏ. НапримСр, Π½Π° Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… STL врСмя выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ «с постоянной ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽΒ» ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. Π’Π°ΠΊΠΎΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ компилятор выполняСт Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ.

β€’ ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с логарифмичСской ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ с ростом n Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π° врСмя, ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌΡƒ ΠΏ. НапримСр, опСрация с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠΌ элСмСнтов Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° дольшС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с сотнСй элСмСнтов, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ log nΒ³ = 3 log n. МногиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ поиска Π² ассоциативных ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, set::find) ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ логарифмичСской ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.