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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования C++. ΠŸΡΡ‚ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 47

Автор Π‘Ρ‚Π΅Π½Π»ΠΈ Π›ΠΈΠΏΠΏΠΌΠ°Π½

АрифмСтичСскиС дСйствия с указатСлями (pointer arithmetic). АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, допустимыС для ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° массивы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ арифмСтичСскиС дСйствия с ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.

ИндСкс (index). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ индСксирования для указания элСмСнта, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ· строки, Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ массива.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ значСния (value initialization). Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ, Π² Ρ…ΠΎΠ΄Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ встроСнного Ρ‚ΠΈΠΏΠ° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½ΡƒΠ»Π΅ΠΌ, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса β€” ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ стандартного конструктора класса. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚ΠΈΠΏΠ° класса ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Ρƒ класса Π΅ΡΡ‚ΡŒ стандартный конструктор. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ элСмСнтов ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΊΠΎΠ³Π΄Π° ΡƒΠΊΠ°Π·Π°Π½ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΏΠΈΠ΅ΠΉ значСния, созданного компилятором.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠΏΠΈΠ΅ΠΉ (copy initialization). Π€ΠΎΡ€ΠΌΠ° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ Π·Π½Π°ΠΊ =. Π’Π½ΠΎΠ²ΡŒ созданный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ являСтся ΠΊΠΎΠΏΠΈΠ΅ΠΉ прСдоставлСнного ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°.

Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ послС ΠΊΠΎΠ½Ρ†Π° (off-the-end iterator). Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ end(). Он ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ Π½Π° послСдний ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π° Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π·Π° Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ†ΠΎΠΌ, Ρ‚.Π΅. Π½Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ (container). Π’ΠΈΠΏ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ способны ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. К ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΌ относится Ρ‚ΠΈΠΏ vector.

ОбъявлСниС using. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ имя, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π² пространствС ΠΈΠΌΠ΅Π½, доступным нСпосрСдствСнно Π² ΠΊΠΎΠ΄Π΅. using пространствоимСн::имя;. Π’Π΅ΠΏΠ΅Ρ€ΡŒ имя ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· прСфикса пространствоимСн::.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ !. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ логичСского NOT. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ инвСрсноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ своСго ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Ρ‚ΠΈΠΏΠ° bool. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ true, Ссли ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ false, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &&. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ логичСского AND. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ true, Ссли ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° true. ΠŸΡ€Π°Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ обрабатываСтся, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π»Π΅Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ true.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ []. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ индСксирования. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ obj[i] Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнт Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ i ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° obj. Π‘Ρ‡Π΅Ρ‚ индСксов начинаСтся с нуля: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ индСкс 0, Π° послСдний β€” obj.size() - 1. Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Если p β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, a n β€” Ρ†Π΅Π»ΠΎΠ΅ число, Ρ‚ΠΎ p[n] являСтся синонимом для *(p+n).

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ||. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ логичСского OR. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ true, Ссли любой ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ true. ΠŸΡ€Π°Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ обрабатываСтся, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π»Π΅Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ false.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ++. Для Ρ‚ΠΈΠΏΠΎΠ² ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ "добавляСт Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ", пСрСмСщая ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ <<. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ string опрСдСляСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π²ΠΎΠ΄Π°, Ρ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠΉ символы Π² строку.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ->. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ стрСлка. ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ обращСния ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€: a->b β€” синоним для (*a).b.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ >>. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ string опрСдСляСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Π²ΠΎΠ΄Π°, Ρ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠΉ ΠΈΡ… Π² строковой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΡ€Π°Π²Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ.

Π‘Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for (range for). Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠΉ значСния ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ Π½Π΅ΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ….

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π° (buffer overflow). Грубая ошибка программирования, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ использования индСкса, выходящСго ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° элСмСнтов ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ string, vector ΠΈΠ»ΠΈ массив.

ΠŸΡ€ΡΠΌΠ°Ρ инициализация (direct initialization). Π€ΠΎΡ€ΠΌΠ° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ Π·Π½Π°ΠΊ =.

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ компилятора (compiler extension). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ языка, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ компиляторами. Код, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ компилятора, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ пСрСносу Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ компиляторы.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ экзСмпляра (instantiation). ΠŸΡ€ΠΎΡ†Π΅ΡΡ, Π² Ρ…ΠΎΠ΄Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ компилятор создаСт спСцифичСский экзСмпляр шаблона класса ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π² стилС Π‘ (C-style string). Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом Π² ΠΊΠΎΠ½Ρ†Π΅. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ строками Π² стилС Π‘. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² стилС Π‘ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ошибок.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° с Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом (null-terminated string). Π‘Ρ‚Ρ€ΠΎΠΊΠ°, послСдний символ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ сопровоТдаСтся Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом ('\0').

Π’ΠΈΠΏ difference_type. ЦСлочислСнный Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² классах vector ΠΈ string, способный ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄ΠΈΡΡ‚Π°Π½Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ двумя ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.

Π’ΠΈΠΏ iterator (ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€). Π’ΠΈΠΏ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅ элСмСнтов ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π½ΠΈΠΌ.

Π’ΠΈΠΏ ptrdiff_t. ΠœΠ°ΡˆΠΈΠ½ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡ‹ΠΉ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ цСлочислСнный Ρ‚ΠΈΠΏ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ cstddef. ЯвляСтся достаточно большим, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя указатСлями Π² самом большом массивС.

Π’ΠΈΠΏ size_t. ΠœΠ°ΡˆΠΈΠ½ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡ‹ΠΉ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ цСлочислСнный Ρ‚ΠΈΠΏ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ cstddef. ЯвляСтся достаточно большим, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ самого большого Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ массива.

Π’ΠΈΠΏ size_type. Имя Ρ‚ΠΈΠΏΠ°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ для классов vector ΠΈ string, способного ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ любой строки ΠΈΠ»ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° соотвСтствСнно. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ классы, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏ size_type, относят Π΅Π³ΠΎ ΠΊ Ρ‚ΠΈΠΏΡƒ unsigned.

Π’ΠΈΠΏ string. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ²ΡˆΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов.

Π’ΠΈΠΏ vector. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, содСрТащий ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ элСмСнтов ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

Ѐункция begin(). Ѐункция-Ρ‡Π»Π΅Π½ классов vector ΠΈ string, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, автономная библиотСчная функция, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π°Ρ массив ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт Π² массивС.

Ѐункция empty(). Ѐункция-Ρ‡Π»Π΅Π½ классов vector ΠΈ string. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Ρ‚ΠΈΠΏΠ° bool) true, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ, ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

Ѐункция end(). Ѐункция-Ρ‡Π»Π΅Π½ классов vector ΠΈ string, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° элСмСнт послС послСднСго элСмСнта ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, автономная библиотСчная функция, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π°Ρ массив ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° элСмСнт послС послСднСго Π² массивС.

Ѐункция getline(). ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ string функция, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ ΠΏΠΎΡ‚ΠΎΠΊ istream ΠΈ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Ѐункция Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ встрСтится символ Π½ΠΎΠ²ΠΎΠΉ строки, Π° ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠ΅ сохраняСт Π² строковой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ istream. Π‘ΠΈΠΌΠ²ΠΎΠ» Π½ΠΎΠ²ΠΎΠΉ строки Π² ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… отбрасываСтся.

Ѐункция push_back(). Ѐункция-Ρ‡Π»Π΅Π½ класса vector, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰Π°Ρ элСмСнты Π² Π΅Π³ΠΎ ΠΊΠΎΠ½Π΅Ρ†.

Ѐункция size(). Ѐункция-Ρ‡Π»Π΅Π½ классов vector ΠΈ string Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство символов ΠΈΠ»ΠΈ элСмСнтов соотвСтствСнно. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ size_type для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

Π¨Π°Π±Π»ΠΎΠ½ класса (class template). ΠŸΡ€ΠΎΠ΅ΠΊΡ‚, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создано мноТСство спСциализированных классов. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ шаблон класса, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚ΠΈΠΏ Π΅Π³ΠΎ элСмСнта: vector<int> содСрТит Ρ†Π΅Π»Ρ‹Π΅ числа.

Π“Π»Π°Π²Π° 4

ВыраТСния

Π―Π·Ρ‹ΠΊ Π‘++ прСдоставляСт Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ опрСдСляСт ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌ встроСнного Ρ‚ΠΈΠΏΠ°. Он позволяСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ классов. Π­Ρ‚Π° Π³Π»Π°Π²Π° посвящСна ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π² самом языкС ΠΈ примСняСмым ΠΊ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌ встроСнных Ρ‚ΠΈΠΏΠΎΠ². Π‘ΡƒΠ΄ΡƒΡ‚ описаны Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для собствСнных Ρ‚ΠΈΠΏΠΎΠ² рассматриваСтся Π² Π³Π»Π°Π²Π΅ 14.

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (expression) состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² (operator) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (result) вычислСния. Бамая простая Ρ„ΠΎΡ€ΠΌΠ° выраТСния β€” это ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΈΠ»ΠΈ пСрСмСнная. Π‘ΠΎΠ»Π΅Π΅ слоТныС выраТСния Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² (operand).

4.1. ΠžΡΠ½ΠΎΠ²Ρ‹

БущСствуСт нСсколько Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ выраТСния. НачнСм с ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ обсуТдСнии ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ, относящихся ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ (Ссли Π½Π΅ ΠΊΠΎ всСм) Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π’ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… эти Ρ‚Π΅ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ.

4.1.1. Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ (unary operator) ΠΈ ΠΏΠ°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ (binary operator). Π£Π½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ адрСсу (&) ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (*), Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄. ΠŸΠ°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ равСнство (==) ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ (*), Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π° Π΄Π²Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°. БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ (всСго ΠΎΠ΄ΠΈΠ½) тройствСнный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ (ternary operator), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (function call), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ².