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*, ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅) Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π°ΡΠ°Π»Π° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
const char *cp = "Hello World!!!"; // ΠΌΠ°ΡΡΠΈΠ² Ρ Π½ΡΠ»Π΅Π²ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π² ΠΊΠΎΠ½ΡΠ΅
char noNull[] = {'H', 'i' }; // Π±Π΅Π· Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² ΠΊΠΎΠ½ΡΠ΅
string s1(cp); // ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ cp Π΄ΠΎ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°;
// s1 == "Hello World!!!"
string s2(noNull,2); // ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΈΠ· noNull; s2 == "Hi"
string s3(noNull); // Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ: noNull Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ null
string s4(cp + 6, 5); // ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ 5 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½Π°ΡΠΈΠ½Π°Ρ Ρ cp[6];
// s4 == "World"
string s5(s1, 6, 5); // ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ 5 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½Π°ΡΠΈΠ½Π°Ρ Ρ s1[6];
// s5 == "World"
string s6(s1, 6); // ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΠΎΡ s1[6] Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° s1;
// s6 == "World!!!"
string s7(s1, 6, 20); // ok, ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° s1;
// s7 == "World!!!"
string s8(s1, 16); // ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ out_of_range
ΠΠ±ΡΡΠ½ΠΎ ΡΡΡΠΎΠΊΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠ· ΡΠΈΠΏΠ° const char*. ΠΠ°ΡΡΠΈΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ Π½ΡΠ»Π΅Π²ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ; ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ Π΄ΠΎ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ, ΠΌΠ°ΡΡΠΈΠ² Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ Π½ΡΠ»Π΅Π²ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ. ΠΡΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΈ Π½Π΅Ρ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌ.
ΠΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ· ΡΡΡΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΡΡ ΠΎΠ΄Π½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡΠ»ΠΈ ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ out_of_range (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 5.6). ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΡΡΠΎΠΊΠΈ, Π½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅.
Π€ΡΠ½ΠΊΡΠΈΡ substr()Π€ΡΠ½ΠΊΡΠΈΡ substr() (ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π² ΡΠ°Π±Π». 9.12) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠΏΠΈΡ ΡΠ°ΡΡΠΈ ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ) Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²:
string s("hello world");
string s2 = s.substr(0, 5); // s2 = hello
string s3 = s.substr(6); // s3 = world
string s4 = s.substr(6, 11); // s3 = world
string s5 = s.substr(12); // ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ out_of_range
ΠΡΠ»ΠΈ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΡΠ½ΠΊΡΠΈΡ substr() ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ out_of_range (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 5.6). ΠΡΠ»ΠΈ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΡΡΠΌΠΌΠ΅ Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ, ΡΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΡΡΠΎΠΊΠΈ.
Π’Π°Π±Π»ΠΈΡΠ° 9.12. Π€ΡΠ½ΠΊΡΠΈΡ substr()
s.substr(pos, n) ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ n ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· ΡΡΡΠΎΠΊΠΈ s, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ pos. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ pos ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ n ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΠ΅Π΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΡΡΠΎΠΊΠΈ s, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ pos Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π° 9.5.1Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.41. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΡΡΡΠΎΠΊΡ ΠΈΠ· Π²Π΅ΠΊΡΠΎΡΠ° vector<char>.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.42. Π£ΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΡΡΡΠΎΠΊΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΈΡΠ°ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ 100 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ?
9.5.2. ΠΡΡΠ³ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ
Π’ΠΈΠΏ string ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ assign(), insert() ΠΈ erase() (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 9.2.5, ΡΠ°Π·Π΄Π΅Π» 9.3.1 ΠΈ ΡΠ°Π·Π΄Π΅Π» 9.3.3). Π Π½Π΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ insert() ΠΈ erase().
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΌ Π²Π΅ΡΡΠΈΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ insert() ΠΈ erase(), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ, ΡΠΈΠΏ string ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡ Π²Π΅ΡΡΠΈΠΈ, ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ½Π΄Π΅ΠΊΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ erase() ΠΈΠ»ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ insert():
s.insert(s.size(), 5, '!'); // Π²ΡΡΠ°Π²ΠΈΡΡ ΠΏΡΡΡ Π²ΠΎΡΠΊΠ»ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ Π·Π½Π°ΠΊΠΎΠ²
// Π² ΠΊΠΎΠ½Π΅Ρ ΡΡΡΠΎΠΊΠΈ s
s.erase(s.size() - 5, 5); // ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ·
// ΡΡΡΠΎΠΊΠΈ s
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° string ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ insert() ΠΈ assign(), ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΡΠΈΠ»Π΅ Π‘. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Ρ Π½ΡΠ»Π΅Π²ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΡΠΌ insert() ΠΈ assign():
const char *cp = "Stately, plump Buck";
s.assign(cp, 7); // s == "Stately"
s.insert(s.size(), cp + 7); // s == "Stately, plump Buck"
Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΡΠΎΠΊΠΈ s Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ assign(). ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΡΠΎΠΊΠ΅ s ΡΠΈΠΌΠ²ΠΎΠ»Ρ β ΡΡΠΎ ΡΠ΅ΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· Π½Π°ΡΠ°Π»Π° ΠΌΠ°ΡΡΠΈΠ²Π°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ cp. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° (ΠΈΡΠΊΠ»ΡΡΠ°Ρ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠΉ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ»), Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ cp.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ insert() Π΄Π»Ρ ΡΡΡΠΎΠΊΠΈ s, ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ Π²ΡΡΠ°Π²ΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ s[size()]. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅Π΄ΡΠΌΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° cp ΠΈ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°.
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ insert() ΠΈ assign() ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠ°ΠΊ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ Π΅Π΅ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ:
string s = "some string", s2 = "some other string";
s.insert(0, s2); // Π²ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΏΠΈΡ s2 ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ·ΠΈΡΠΈΠ΅ΠΉ 0 Π² s
// Π²ΡΡΠ°Π²ΠΈΡΡ s2.size() ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· s2,
// Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ s2[0] ΠΏΠ΅ΡΠ΅Π΄ s[0]
s.insert(0, s2, 0, s2.size());
Π€ΡΠ½ΠΊΡΠΈΠΈ append() ΠΈ replace()ΠΠ»Π°ΡΡ string ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄Π²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Π°, append() ΠΈ replace(), ΡΠΏΠΎΡΠΎΠ±Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΡΠΎΠΊΠΈ. ΠΡΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°Π±Π». 9.13. Π€ΡΠ½ΠΊΡΠΈΡ append() β ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΡΠ°Π²ΠΊΠΈ Π² ΠΊΠΎΠ½Π΅Ρ:
string s("C++ Primer"), s2 = s; // ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΡΠΎΠΊ s ΠΈ s2
// ΡΠ΅ΠΊΡΡΠΎΠΌ "Π‘++ Primer"
s.insert(s.size(), " 4th Ed."); // s == "Π‘++ Primer 4th Ed."
s2.append(" 4th Ed."); // ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ " 4th Ed." ΠΊ s2;
// s == s2
Π€ΡΠ½ΠΊΡΠΈΡ replace() β ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΉ erase() ΠΈ insert():
// ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΌΠ΅Π½Ρ "4th" Π½Π° "5th"
s.erase(11, 3); // s == "Π‘++ Primer Ed."
s.insert(11, "5th"); // s == "Π‘++ Primer 5th Ed."
// Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ 11, ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΡΠ°Π²ΠΈΡΡ "5th"
s2.replace(11, 3, "5th"); // ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ: s == s2
Π Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ replace() Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΡΡΠΎ ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΠΉ. ΠΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΡΡ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΡΡ ΡΡΡΠΎΠΊΡ:
s.replace(11, 3, "Fifth"); // s == "Π‘++ Primer Fifth Ed."
Π ΡΡΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠ΄Π°Π»ΡΡΡΡΡ ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°, Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π½ΠΈΡ Π²ΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΡΡΡ.
Π’Π°Π±Π»ΠΈΡΠ° 9.13. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΡΡΠΎΠΊΠΈ
s.insert(pos, args) ΠΡΡΠ°Π²ΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ args, ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ·ΠΈΡΠΈΠ΅ΠΉ pos. ΠΠΎΠ·ΠΈΡΠΈΡ pos ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π΄Π°Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. ΠΠ΅ΡΡΠΈΠΈ, ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΡΠΎΠΊΡ s, Π° ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» s.erase(pos, len) Π£Π΄Π°Π»ΡΠ΅Ρ len ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ pos. ΠΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ len ΠΏΡΠΎΠΏΡΡΠ΅Π½, ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΎΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ pos Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΡΡΠΎΠΊΠΈ s. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΡΠΎΠΊΡ s s.assign(args) ΠΠ°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΡΡΠΎΠΊΠΈ s ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ args. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΡΠΎΠΊΡ s s.append(args) ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ args ΠΊ ΡΡΡΠΎΠΊΠ΅ s. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΡΠΎΠΊΡ s s.replace(range, args) Π£Π΄Π°Π»ΡΠ΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ range ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· ΡΡΡΠΎΠΊΠΈ s ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ args. ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π°Π΄Π°Π½ Π»ΠΈΠ±ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ ΠΈ Π΄Π»ΠΈΠ½ΠΎΠΉ, Π»ΠΈΠ±ΠΎ ΠΏΠ°ΡΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΡΠΎΠΊΡ s ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ args ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ : ΡΡΠ½ΠΊΡΠΈΠΈ append() ΠΈ assign() ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠΎΡΠΌΡ. Π‘ΡΡΠΎΠΊΠ° str Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½Π° ΠΎΡ s, Π° ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ b ΠΈ Π΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡ ΡΡΡΠΎΠΊΠ΅ s str Π‘ΡΡΠΎΠΊΠ° str str, pos, len ΠΠΎ len ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· ΡΡΡΠΎΠΊΠΈ str, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ pos cp, len ΠΠΎ len ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ cp cp ΠΠ°Π²Π΅ΡΡΠ°ΡΡΠΈΠΉΡΡ Π½ΡΠ»Π΅Π²ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ cp n, c n ΠΊΠΎΠΏΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ»Π° Ρ b, e Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ b ΠΈ Π΅ Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ Π·Π°ΠΏΡΡΡΠΌΠΈ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π² ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ args Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ replace() ΠΈ insert() Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΡ replace(pos,len,args) replace(b,Π΅,args) insert(pos,args) insert(iter,args) ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ args ΠΠ° ΠΠ° ΠΠ° ΠΠ΅Ρ str ΠΠ° ΠΠ΅Ρ ΠΠ° ΠΠ΅Ρ str, pos, len ΠΠ° ΠΠ° ΠΠ° ΠΠ΅Ρ cp, len ΠΠ° ΠΠ° ΠΠ΅Ρ ΠΠ΅Ρ cp ΠΠ° ΠΠ° ΠΠ° ΠΠ° n, Ρ ΠΠ΅Ρ ΠΠ° ΠΠ΅Ρ ΠΠ° b2, e2 ΠΠ΅Ρ ΠΠ° ΠΠ΅Ρ ΠΠ° ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠΎΠΊΡΠ€ΡΠ½ΠΊΡΠΈΠΈ append(), assign(), insert() ΠΈ replace(), ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π». 9.13, ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ. ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°Π΄Π°Π½Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ ΠΊΠ°ΠΊΠ°Ρ ΡΠ°ΡΡΡ ΡΡΡΠΎΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ. Π ΡΡΠ°ΡΡΡΡ, Ρ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.