ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ new ΠΈ delete ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠ°Π·Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π΅ΠΊΡΠΎΡΡ ΠΈ ΡΡΡΠΎΠΊΠΈ Ρ ΡΠ°Π½ΡΡ ΡΠ²ΠΎΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ°Π·Ρ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 9.4).
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π―Π·ΡΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΡΠΎΡΠΎΠΉ Π²ΠΈΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° new, ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½ ΠΊΠ»Π°ΡΡΠ° allocator, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΡΠ΄Π΅Π»ΡΡΡ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 12.2.2, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° allocator ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π»ΡΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ.
Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π°) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°Ρ . ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΡΠ΅, Π±ΡΡΡΡΠ΅ΠΉ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΠΊΡΠΎΡ (ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ), ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ StrBlob. ΠΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 13.6, ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π½Ρ ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΌΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ.
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, Π° Π½Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΡΠΎΡΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅Π½ΡΡΠ΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ, ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΎΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π»ΡΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΠ°ΠΊ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 7.1.5). ΠΠ»Π°ΡΡΡ, ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΡΡΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠ΅ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠΉΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ Π² ΠΊΠ»Π°ΡΡΠ°Ρ , ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΡΠΈΡΠ°Π΅ΡΠ΅ Π³Π»Π°Π²Ρ 13.
12.2.1. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ new ΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΈΠΏΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ (ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ· Π½ΠΈΡ :
// Π²ΡΠ·ΠΎΠ² get_size() ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΠΌΡΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π»
int *pia = new int[get_size()]; // pia ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½ΠΎ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΎΠΉ.
ΠΠ»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΡΠΈ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ ΡΠΈΠΏΠ° (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 2.5.1). Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ:
typedef int arrT[42]; // arrT - ΠΈΠΌΡ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ· 42 ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π»
int *p = new arrT; // ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· 42 ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π»;
// p ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ
ΠΠ΄Π΅ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ°ΠΆΠ΅ ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΊΠΎΠ±ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅ Π½Π΅Ρ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new[]. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΊΠΎΠ΄ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠ°ΠΊ:
int *p = new int[42];
Π Π΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠΏ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Π₯ΠΎΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ°ΠΌΡΡΡ, Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ new T[], Π½Π°Π·ΡΠ²Π°ΡΡ "Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ", ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π²ΠΎΠ΄ΠΈΡ Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠΏ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ ΡΠΈΠΏΠ°, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new Π½Π΅ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²Π°. Π Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ², Ρ ΠΎΡΡ ΡΠ°ΡΡΡ [ΡΠΈΡΠ»ΠΎ] Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌΠ°. ΠΠ°ΠΆΠ΅ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠΏ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²Π°, Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅Π»ΡΠ·Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ begin() ΠΈΠ»ΠΈ end() (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 3.5.3). ΠΠ»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° (ΡΠ²Π»ΡΡΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²Π°). ΠΠΎ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅Π»ΡΠ·Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ for.
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅Ρ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ new ΠΎΠ±ΡΠ΅ΠΊΡΡ (Π±ΡΠ΄Ρ ΡΠΎ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Ρ) ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 3.3.1) Π·Π° ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΠΏΠ°ΡΡ ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ:
int *pia = new int[10]; // Π±Π»ΠΎΠΊ ΠΈΠ· Π΄Π΅ΡΡΡΠΈ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
// ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π»
int *pia2 = new int[10](); // Π±Π»ΠΎΠΊ ΠΈΠ· Π΄Π΅ΡΡΡΠΈ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π»,
// ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
// Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 0
string *psa = new string[10]; // Π±Π»ΠΎΠΊ ΠΈΠ· Π΄Π΅ΡΡΡΠΈ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊ
string *psa2 = new string[10](); // Π±Π»ΠΎΠΊ ΠΈΠ· Π΄Π΅ΡΡΡΠΈ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊ
ΠΠΎ Π½ΠΎΠ²ΠΎΠΌΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²:
// Π±Π»ΠΎΠΊ ΠΈΠ· Π΄Π΅ΡΡΡΠΈ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π», ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ
// ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ
int *pia3 = new int[10]{0,1,2,3,4,5,6,7,8,9};
// Π±Π»ΠΎΠΊ ΠΈΠ· Π΄Π΅ΡΡΡΠΈ ΡΡΡΠΎΠΊ; ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ
// ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ, ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ
// ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
string *psa3 = new string[10]{"a", "an", "the", string(3, 'x')};
ΠΡΠΈ ΡΠΏΠΈΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΈΠΏΠ° Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 3.5.1) ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new ΠΏΠΎΡΠ΅ΡΠΏΠΈΡ Π½Π΅ΡΠ΄Π°ΡΡ, Π½Π΅ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π² Π½ΠΈΡΠ΅Π³ΠΎ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° bad_array_new_length. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ bad_alloc, ΡΡΠΎΡ ΡΠΈΠΏ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ new.
Π₯ΠΎΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΡΡΡΠ΅ ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, Π² Π½ΠΈΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΡΠ°ΠΊΡΡ ΠΏΡΠΈ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ auto (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 12.1.2).
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
size_t n = get_size(); // get_size() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ
// ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
int* p = new int[n]; // ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² Π΄Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
for (int* q = p; q != p + n; ++q)
/* ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠ°ΡΡΠΈΠ²Π° */ ;
ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ: ΡΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ get_size() Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0? ΠΡΠΎΡ ΠΊΠΎΠ΄ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ. ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ new[n] ΠΏΡΠΈ n ΡΠ°Π²Π½ΠΎΠΌ 0 Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌ, Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 0:
char arr[0]; // ΠΎΡΠΈΠ±ΠΊΠ°: Π½Π΅Π»ΡΠ·Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² Π½ΡΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ
char *cp = new char[0]; // ok: Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ cp Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° new Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ, Π° Π½Π΅ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΡΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ΅Π½ ΠΎΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ new. ΠΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠ½ΡΠ° (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 3.5.3) Π΄Π»Ρ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠ½ΡΠ°. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Π² ΡΠΈΠΊΠ»Π΅, ΠΊΠ°ΠΊ Π²ΡΡΠ΅. Π Π½Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΡΠ»Ρ (ΠΈΠ»ΠΈ Π²ΡΡΠ΅ΡΡΡ Π½ΡΠ»Ρ), ΡΠ°ΠΊΠΎΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ΅ΡΡΡ ΠΈΠ· ΡΠ΅Π±Ρ, ΠΏΠΎΠ»ΡΡΠΈΠ² Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½ΡΠ»Ρ. Π Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π΅Π»ΡΠ·Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ, Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΎΠ½ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
Π Π³ΠΈΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠΈΠΊΠ»Π΅, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ get_size() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 0, ΡΠΎ n ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π²Π½ΠΎ 0. ΠΡΠ·ΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° new Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ Π½ΡΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° for Π±ΡΠ΄Π΅Ρ Π»ΠΎΠΆΠ½ΠΎ (p ΡΠ°Π²Π½ΠΎ q + n, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ n ΡΠ°Π²Π½ΠΎ 0). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅Π»ΠΎ ΡΠΈΠΊΠ»Π° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ.