Π€ΡΠ½ΠΊΡΠΈΡ reserve() Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅; ΠΎΠ½Π° Π²Π»ΠΈΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΠΌΠΎΠΉ Π²Π΅ΠΊΡΠΎΡΠΎΠΌ.
ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ reserve() ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π΅ΠΌΠΊΠΎΡΡΡ Π²Π΅ΠΊΡΠΎΡΠ°, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ Π΅ΠΌΠΊΠΎΡΡΡ. ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΅ΠΌΠΊΠΎΡΡΠΈ, ΡΡΠ½ΠΊΡΠΈΡ reserve() ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΠ°, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΎ (ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠ΅).
ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π΅Π½ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π΅ΠΌΠΊΠΎΡΡΠΈ, ΡΡΠ½ΠΊΡΠΈΡ reserve() Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ reserve(), ΠΏΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ΠΌ, ΡΠ΅ΠΌ Π΅ΠΌΠΊΠΎΡΡΡ, Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ reserve() Π΅ΠΌΠΊΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΌΡ Π΅ΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ reserve() Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΎΠΊΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ-ΡΠ»Π΅Π½ resize() (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 9.3.5) ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π° Π½Π΅ Π΅Π³ΠΎ Π΅ΠΌΠΊΠΎΡΡΡ. Π€ΡΠ½ΠΊΡΠΈΡ resize() Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΏΠ°ΠΌΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π·Π΅ΡΠ²Π΅.
Π Π½ΠΎΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ shrink_to_fit(), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ deque, vector ΠΈΠ»ΠΈ string ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΠ°ΠΌΡΡΡ. ΠΡΠ·ΠΎΠ² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ Π΅ΠΌΠΊΠΎΡΡΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ°Π²ΠΎ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ. ΠΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π³Π°ΡΠ°Π½ΡΠΈΠΈ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ shrink_to_fit() ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ ΠΏΠ°ΠΌΡΡΡ.
Π€ΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Ρ capacity() ΠΈ size()ΠΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΅ΠΌΠΊΠΎΡΡΡΡ (capacity) ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ (size). Π Π°Π·ΠΌΠ΅Ρ β ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π° Π΅ΠΌΠΊΠΎΡΡΡ β ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ, Π½Π΅ ΠΏΡΠΈΠ±Π΅Π³Π°Ρ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ Π΅ΠΌΠΊΠΎΡΡΠΈ:
vector<int> ivec;
// ΡΠ°Π·ΠΌΠ΅Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ; Π΅ΠΌΠΊΠΎΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
cout << "ivec: size: " << ivec.size()
<< " capacity: " << ivec.capacity() << endl;
// ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π²Π΅ΠΊΡΠΎΡΡ ivec 24 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
for (vector<int>::size_type ix = 0; ix != 24; ++ix)
ivec.push_back(ix);
// ΡΠ°Π·ΠΌΠ΅Ρ 24; Π΅ΠΌΠΊΠΎΡΡΡ ΡΠ°Π²Π½Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ 24, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
cout << "ivec: size: " << ivec.size()
<< " capacity: " << ivec.capacity() << endl;
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π°Π²ΡΠΎΡΠ° ΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠ»Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ivec: size: 0 capacity: 0
ivec: size: 24 capacity: 32
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΏΡΡΡΠΎΠΉ Π²Π΅ΠΊΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅Ρ, Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΏΡΡΡΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½ΡΠ»Π΅Π²ΡΡ Π΅ΠΌΠΊΠΎΡΡΡ. ΠΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π²Π΅ΠΊΡΠΎΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠΌΠΊΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ Π±ΠΎΠ»ΡΡΠ΅. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ Π΅ΠΌΠΊΠΎΡΡΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ 24 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΅ΠΌΠΊΠΎΡΡΠΈ 32.
ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π΅ΠΊΡΠΎΡΠ° ivec ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΊ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ reserve() ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ.
ivec.reserve(50); // Π·Π°Π΄Π°ΡΡ Π΅ΠΌΠΊΠΎΡΡΡ 50 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π±ΠΎΠ»ΡΡΠ΅)
// ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΠ΄Π΅Ρ 24, Π° Π΅ΠΌΠΊΠΎΡΡΡ - 50 ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ
// Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
cout << "ivec: size: " << ivec.size()
<< " capacity: " << ivec.capacity() << endl;
ΠΡΠ²ΠΎΠ΄ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ reserve() Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π» ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΠ°, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΠ»ΠΎ Π·Π°ΠΏΡΠΎΡΠ΅Π½ΠΎ:
ivec: size: 24 capacity: 50
ΠΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ Π΅ΠΌΠΊΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΈΠ·ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
// Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΡΡΠΎΠ±Ρ ΠΈΡΡΠ΅ΡΠΏΠ°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ Π΅ΠΌΠΊΠΎΡΡΡ
while (ivec.size() != ivec.capacity())
ivec.push_back(0);
// Π΅ΠΌΠΊΠΎΡΡΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ, ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ Π΅ΠΌΠΊΠΎΡΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π²Π½Ρ
cout << "ivec: size: " << ivec.size()
<< " capacity: " << ivec.capacity() << endl;
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ, ΡΡΠΎ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ΅Π·Π΅ΡΠ²Π½Π°Ρ Π΅ΠΌΠΊΠΎΡΡΡ ΠΈΡΡΠ΅ΡΠΏΠ°Π½Π°, Π° ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ Π΅ΠΌΠΊΠΎΡΡΡ ΡΠ°Π²Π½Ρ.
ivec: size: 50 capacity: 50
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π·Π΅ΡΠ²Π½Π°Ρ Π΅ΠΌΠΊΠΎΡΡΡ, Π² ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ΅Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ°Ρ Π΅ΠΌΠΊΠΎΡΡΡ Π²Π΅ΠΊΡΠΎΡΠ°, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅Ρ.
ΠΡΠ»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π²Π΅ΠΊΡΠΎΡ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
ivec.push_back(42); // Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ
// ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΠ΄Π΅Ρ 51, Π° Π΅ΠΌΠΊΠΎΡΡΡ 51 ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ
// Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
cout << "ivec: size: " << ivec.size()
<< " capacity: " << ivec.capacity() << endl;
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
ivec: size: 51 capacity: 100
ΠΠ½ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° vector ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ΄Π²ΠΎΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΅ΠΌΠΊΠΎΡΡΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ shrink_to_fit(), Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π΅Π½ΡΠΆΠ½ΠΎΠΉ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°:
ivec.shrink_to_fit(); // Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ
// ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΡΡΠ°Π»ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ; Π΅ΠΌΠΊΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ
cout << "ivec: size: " << ivec.size()
<< " capacity: " << ivec.capacity() << endl;
ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ shrink_to_fit() ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠΌ; Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π³Π°ΡΠ°Π½ΡΠΈΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠ°ΠΌΡΡΡ Π±ΡΠ΄Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π°.
ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° vector ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ, ΠΏΠΎΠΊΠ° Π΅Π³ΠΎ Π΅ΠΌΠΊΠΎΡΡΡ Π½Π΅ ΠΈΡΡΠ΅ΡΠΏΠ°Π½Π°.
ΠΠ΅ΠΊΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π²Π΅Π½ Π΅ΠΌΠΊΠΎΡΡΠΈ, Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ resize() ΠΈΠ»ΠΈ reserve() ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΡΠ΅Π²ΡΡΠ°ΡΡΠΈΠΌ ΡΠ΅ΠΊΡΡΡΡ Π΅ΠΌΠΊΠΎΡΡΡ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΠΌΠΎΠ΅ ΡΠ²ΡΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ°, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ·Π°Π½Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡΠ΅ΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ push_back() ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π²Π΅ΠΊΡΠΎΡ. Π‘ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ n ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²Π΅ΠΊΡΠΎΡΠ° ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ push_back() Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΡΡΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ°, ΡΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° n.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π° 9.4Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.35. ΠΠ±ΡΡΡΠ½ΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΅ΠΌΠΊΠΎΡΡΡΡ Π²Π΅ΠΊΡΠΎΡΠ° ΠΈ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.36. ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π΅ΠΌΠΊΠΎΡΡΡ, ΠΌΠ΅Π½ΡΡΡΡ, ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ?
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.37. ΠΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ list ΠΈ array Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Π° capacity()?
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.38. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠΎΡΡ Π²Π΅ΠΊΡΠΎΡΠ° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.39. ΠΠ±ΡΡΡΠ½ΠΈΡΠ΅, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
vector<string> svec;
svec.reserve(1024);
string word;
while (cin >> word)
svec.push_back(word);
svec.resize(svec.size() + svec.size()/2);
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.40. ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΈ ΡΠΈΡΠ°Π΅Ρ 256 ΡΠ»ΠΎΠ², ΠΊΠ°ΠΊΠΎΠ²Π° Π΅Π΅ Π²Π΅ΡΠΎΡΡΠ½Π°Ρ Π΅ΠΌΠΊΠΎΡΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ resize()? Π§ΡΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΡΠΈΡΠ°Π΅Ρ 512, 1 000 ΠΈΠ»ΠΈ 1 048 ΡΠ»ΠΎΠ²?
9.5. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ
ΠΡΠΎΠΌΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΎΠ±ΡΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΡΠΈΠΏ string ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ . ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ, ΡΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π»ΠΈΠ±ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° string ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΡΡΠΈΠ»Π΅ Π‘, Π»ΠΈΠ±ΠΎ ΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° string ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅, ΠΊ ΡΡΠ°ΡΡΡΡ, ΡΠ»Π΅Π΄ΡΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ. Π‘ ΡΡΠ΅ΡΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠ΅Π½ΠΈΠΈ; ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ. ΠΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ, ΠΈΠΌΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π²ΠΈΠ΄Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΈ ΠΈΠ·ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
9.5.1. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠΎΠΊ
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 3.2.1, ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌ, ΠΎΠ±ΡΠΈΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² (ΡΠΌ. ΡΠ°Π±Π». 9.3), ΡΠΈΠΏ string ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΅ΡΠ΅ ΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π». 9.11.
Π’Π°Π±Π»ΠΈΡΠ° 9.11. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠΎΠΊ
ΠΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ n, len2 ΠΈ pos2 ΡΠ²Π»ΡΡΡΡΡ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠΌΠΈ. string s(cp, n); Π‘ΡΡΠΎΠΊΠ° s β ΠΊΠΎΠΏΠΈΡ ΠΏΠ΅ΡΠ²ΡΡ n ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ cp. Π£ ΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ n ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² string s(s2, pos2); Π‘ΡΡΠΎΠΊΠ° s β ΠΊΠΎΠΏΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· ΡΡΡΠΎΠΊΠΈ s2, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ pos2. ΠΡΠ»ΠΈ pos2 > s2.size(), ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌ string s(s2, pos2, len2); Π‘ΡΡΠΎΠΊΠ° s β ΠΊΠΎΠΏΠΈΡ len2 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· ΡΡΡΠΎΠΊΠΈ s2, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ pos2. ΠΡΠ»ΠΈ pos2 > s2.size(), ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ len2, ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ s2.size() - pos2 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ, ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΡΠΈΠΏ string ΠΈΠ»ΠΈ const char*, ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅) Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π°ΡΠ°Π»Π° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ: