Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΡΠΎΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π½Π΅ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΏΡΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΠ±ΡΠ΅ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π°. ΠΠ΅ΡΡΠΏΠΎΡΠ½ΠΎ, Β«Π½Π°ΡΡΠΎΡΡΠΈΠ΅Β» ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Ρ, Π½ΠΎ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² STL ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΡΡΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅.
Π‘ΠΎΠ²Π΅Ρ 47. ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ Β«Π½Π΅ΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎΒ» ΠΊΠΎΠ΄Π°
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΈΠΌΠ΅Π΅ΡΡΡ Π²Π΅ΠΊΡΠΎΡ vector<int>. ΠΠ· ΡΡΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Ρ , Π½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½Π΅ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ Ρ. Π Π³ΠΎΠ»ΠΎΠ²Ρ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅:
vector<int> v; int Ρ ,Ρ;
v.erase(
remove_if(find_if(v.rbegin(),v.rend(),
bind2nd(greater_equal<int>().y)).base(),
v.end(),
bind2nd(less<int>(),x)),
v.end());
ΠΡΠ΅Π³ΠΎ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈ Π·Π°Π΄Π°ΡΠ° ΡΠ΅ΡΠ΅Π½Π°. ΠΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈ ΠΏΡΡΠΌΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½ΠΎ. ΠΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΠ°Π²Π΄Π°?
ΠΠ΅ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΡΠΎΠΏΠΈΡΡΡΡ Ρ Π²ΡΠ²ΠΎΠ΄Π°ΠΌΠΈ. Π‘ΡΠΈΡΠ°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π² ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ? Β«ΠΠ΅Ρ!Β» β Π²ΠΎΡΠΊΠ»ΠΈΠΊΠ½Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π‘++ Ρ ΡΠΆΠ°ΡΠΎΠΌ ΠΈ ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ. Β«ΠΠ°!Β» β ΡΠΊΠ°ΠΆΡΡ ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ Ρ ΡΠ²Π½ΡΠΌ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅ΠΌ. Π ΡΡΠΎΠΌ ΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π’ΠΎ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΡΠΈΡΠ°Π΅Ρ Π²ΡΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΡΠΎΡΠΎΠΉ, Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π°Π΄ΡΠΊΠΈΠΌ Π½Π°Π²Π°ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ.
ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΎ Π΄Π²ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΎ ΡΠ΅ΠΌ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ, ΠΏΡΠΈΠ²Π΅Π΄Ρ ΡΡ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠΌΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΉ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ fn:
V.f1(f2(f3(v.f40.v.f50.f6(f70.y)).f8().v.f90.f6(fl00,x)).v.f90);
Π’Π°ΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½Π½ΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ· Π½Π΅Π΅ ΡΠ±ΡΠ°Π½Ρ ΠΎΡΡΡΡΠΏΡ, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΠΎΠΆΠ½ΠΎ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π‘++ ΡΠΎΡΡΠ΅Ρ, ΡΡΠΎ Π΄Π²Π΅Π½Π°Π΄ΡΠ°ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π΄Π΅ΡΡΡΠΈ ΡΠ°Π·Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ β ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ. ΠΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Ρ ΠΎΠΏΡΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΡΠΈΠΏΠ° Scheme ΠΌΠΎΠ³ΡΡ ΡΡΠΈΡΠ°ΡΡ ΠΈΠ½Π°ΡΠ΅. ΠΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΎΠΏΡΡΡ ΠΌΠΎΠ³Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΡΡΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π±Π΅Π· ΠΌΠ°Π»Π΅ΠΉΡΠΈΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΡ, ΠΈΠΌΠ΅Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΠΏΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ . Π£ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π‘++ ΡΠ°ΠΊΠΎΠΉ ΠΎΠΏΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΡΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ Π½Π΅ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΡΠΎΠ΄Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π° erase Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΡ Π² Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²ΠΎ.
ΠΡΠΎΡΠΎΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ Π΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΡΡ STL. Π Π½Π΅ΠΌ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΠΌΠ΅Π½Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ _if-ΡΠΎΡΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² find ΠΈ remove, ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ (ΡΠΌ. ΡΠΎΠ²Π΅Ρ 26), ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ reverse_iterator Π² iterator (ΡΠΌ. ΡΠΎΠ²Π΅Ρ 28), bind2nd ΠΈ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ΄ΠΈΠΎΠΌΠ° erase-remove (ΡΠΌ. ΡΠΎΠ²Π΅Ρ 32). ΠΠΏΡΡΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ STL ΡΠ°Π·Π±Π΅ΡΠ΅ΡΡΡ Π² ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π±Π΅Π· ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΡΡΠ΄Π°, Π½ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΡ , ΠΊΡΠΎ Π½Π°Π΄ΠΎΠ»Π³ΠΎ Π·Π°Π΄ΡΠΌΠ°Π΅ΡΡΡ Π½Π°Π΄ Π½Π΅ΠΉ. ΠΡΠ»ΠΈ Π²Π°ΡΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ Π΄Π°Π»Π΅ΠΊΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΠ»ΠΈΡΡ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ STL, ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ erase, remove_if, find_if, base ΠΈ bind2nd Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ»Π° ΠΏΠΎΠ½ΡΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π‘++ ΡΠΎ ΡΡΠ΅Π΄Π½ΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ, Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠ½ΠΈΠ³ΠΈ β Ρ Π±Ρ Π²ΠΊΠ»ΡΡΠΈΠ» ΠΈΡ ΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ).
typedef vector<int>::iterator VecInter;
// ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ angeBegin ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ v, Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΡΠΌ
// ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Ρ. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, rangeBegin
// ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ v.begin()
VeclntIter rangeBegin = find_if(v.rbegin().v.rend(),
bind2nd(greater_equal<int>(),y)).base();
// Π£Π΄Π°Π»ΠΈΡΡ ΠΎΡ rangeBegin Π΄ΠΎ v.end Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΌΠ΅Π½ΡΡΠΈΠΌ Ρ
v.erase(remove_if(rangeBegin.v.end().bind2nd(less<int>().x)),v.end());
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΊΠΎΠ΅-ΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈΠ΄ΠΈΠΎΠΌΡ erase-remove, Π½ΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° ΠΏΠΎ STL (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«The Π‘++ Standard LibraryΒ» [3] ΠΈΠ»ΠΈ web-ΡΠ°ΠΉΡΠ° SGI [21]) ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π‘++ Π±Π΅Π· ΠΎΡΠΎΠ±ΡΡ ΡΡΠΈΠ»ΠΈΠΉ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΆΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Ρ Π½Π΅ ΠΎΡΠΊΠ°Π·Π°Π»ΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΈ Π½Π΅ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ ΡΠΈΠΊΠ»Π°ΠΌΠΈ. Π ΡΠΎΠ²Π΅ΡΠ΅ 43 ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΡΠΈΠΊΠ»ΠΎΠ², ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΡΠΈΡΠ°ΡΠ΅Π»Ρ-ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡΠΌ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ. ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠΎΠ²Π΅Ρ 43 ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ°ΡΡΠΎΠΌΡ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΎΡΠΎΠ². ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π·Π°Π΄Π°ΡΠΈ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΡΠΎΠ²Π΅Ρ.
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΈΠΌΠ΅Π΅ΡΡΡ Π²Π΅ΠΊΡΠΎΡ vector<int>. ΠΠ· ΡΡΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Ρ , Π½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½Π΅ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ Ρ.
ΠΠ΅ΡΡΡΠ΄Π½ΠΎ ΠΏΡΠΈΠ΄ΡΠΈ ΠΊ ΠΎΠ±ΡΠ΅ΠΉ ΡΡ Π΅ΠΌΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
β’ΠΏΠΎΠΈΡΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π²Π΅ΠΊΡΠΎΡΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ find ΠΈΠ»ΠΈ find_if Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ;
β’ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ΅Π±ΡΠ΅Ρ erase ΠΈΠ»ΠΈ ΠΈΠ΄ΠΈΠΎΠΌΡ erase-remove.
ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ ΡΡΠΈ Π΄Π²Π΅ ΠΈΠ΄Π΅ΠΈ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄, Π³Π΄Π΅ Β«Π½Π΅ΡΡΠΎΒ» ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ» Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ ΡΠΌΡΡΠ»ΠΎΠ²ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ:
v.erase(remove_if(find_if(v.rbegin(). v.rend(). Π½Π΅ΡΡΠΎ).base(). v.end(). Π½Π΅ΡΡΠΎ)).
v.end());
ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΡ Π΅ΠΌΡ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΠΆΠ΅ ΠΊΡΠΎΠ΅ΡΡΡ Π·Π° Β«Π½Π΅ΡΡΠΎΒ», ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΡ Π½Π΅ ΡΡΠΏΠ΅Π΅ΡΠ΅ ΠΎΠΏΠΎΠΌΠ½ΠΈΡΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ΄Π΅ΡΠ΅ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°. ΠΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ Π²ΠΏΠΎΠ»Π½Π΅ Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π½ΠΈΡ ΠΎΡΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ΄ΠΈΠΎΠΌΡ erase-remove ΠΏΠ»ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ find Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ). Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΄Π½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ Π½Π° ΡΠ΅ ΠΈΠ΄Π΅ΠΈ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ Π±ΡΠ» ΡΠΎΠ±ΡΠ°Π½. Β«ΠΠ΅ΡΠΈΡΠ°Π΅ΠΌΡΠΉΒ» ΠΊΠΎΠ΄ Π»Π΅Π³ΠΊΠΎ ΠΏΠΈΡΠ΅ΡΡΡ, Π½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² Π½Π΅ΠΌ ΡΡΡΠ΄Π½ΠΎ.
ΠΠΏΡΠΎΡΠ΅ΠΌ, Β«Π½Π΅ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡΒ» Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΈΡΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π‘++ Π²ΠΏΠΎΠ»Π½Π΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π²ΡΠΎΠ΄Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ²Π΅ΡΠ°. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΡΡΠΈΠ½Π° ΡΠΈΠΏΠΈΡΠ½Π° Π΄Π»Ρ ΡΡΠ΅Π΄Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅, ΠΈ Π²Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΎΠ½Π° ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠ²ΠΎΠΉ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, Π½Π΅ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΡΡΠ²Ρ. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΡΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ Π²Π»Π°Π΄Π΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΡΡΠΈΠ»Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ ΡΡΠΎΠ»Ρ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² STL, ΡΠΌΠ΅ΡΡΡΠ΅ ΡΠ²ΠΎΠΈ Π°ΠΌΠ±ΠΈΡΠΈΠΈ ΠΈ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π²ΡΠΎΠ΄Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅.
ΠΠ°Π½Π°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΊΡ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΊΠΎΠ΄ ΡΠ°ΡΠ΅ ΡΠΈΡΠ°Π΅ΡΡΡ, ΡΠ΅ΠΌ ΠΏΠΈΡΠ΅ΡΡΡ. Π₯ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅, ΡΡΠΎ Π½Π° ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡ ΠΎΠ΄ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΌ Π½Π° Π΅Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ. ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ½ΡΡΡ, Π΅Π΅ Π½Π΅Π»ΡΠ·Ρ ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡ, Π° ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΠΈΠΊΠΎΠΌΡ Π½Π΅ Π½ΡΠΆΠ½Ρ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ STL, ΡΠ΅ΠΌ ΡΠ²Π΅ΡΠ΅Π½Π½Π΅Π΅ ΡΠ΅Π±Ρ ΡΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅ ΠΈ ΡΠ΅ΠΌ ΡΠΈΠ»ΡΠ½Π΅Π΅ Ρ ΠΎΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Β«Π½Π° Π»Π΅ΡΡΒ». Π ΡΡΠΎΠΌ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΠ»ΠΎΡ ΠΎΠ³ΠΎ, Π½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°Π²ΡΡΠ° ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΊΠΎΠΌΡ-ΡΠΎ ΡΠΈΡΠ°ΡΡ β ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π΄Π°ΠΆΠ΅ Π²Π°ΠΌ. ΠΡΠΈΠ³ΠΎΡΠΎΠ²ΡΡΠ΅ΡΡ ΠΊ ΡΡΠΎΠΌΡ Π΄Π½Ρ.
ΠΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ STL Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ... Π½ΠΎ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Β«Π½Π΅ΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎΒ» ΠΊΠΎΠ΄Π°. Π Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΊΠΈΠΌ ΡΠ³ΠΎΠ΄Π½ΠΎ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ.
Π‘ΠΎΠ²Π΅Ρ 48. ΠΡΠ΅Π³Π΄Π° Π²ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ
ΠΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π² STL Π½Π΅ΡΠ΅Π΄ΠΊΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, Π½ΠΎ ΡΡΠ΅Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² #include Π½Π° Π΄ΡΡΠ³ΠΎΠΉ. ΠΡΠΎΡ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°ΡΡΠΈΠΉ ΡΠ°ΠΊΡ ΡΠ²ΡΠ·Π°Π½ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π‘ΡΠ°Π½Π΄Π°ΡΡ Π‘++ (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π‘ΡΠ°Π½Π΄Π°ΡΡΠ° Π‘) Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. ΠΠ²ΡΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΡΠ²ΠΎΠ±ΠΎΠ΄ΠΎΠΉ ΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΡΠΈ.
ΠΠΎΠΏΡΠΎΠ±ΡΡ ΠΏΠΎΡΡΠ½ΠΈΡΡ, ΡΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΠ΄Π½Π°ΠΆΠ΄Ρ Ρ Π·Π°ΡΠ΅Π» Π·Π° ΠΏΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ STL (Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΠΈΡ Π, Π, Π‘, D ΠΈ Π) ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±ΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΈ ΡΡΠΎΠΌ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»Π°ΡΡ. ΠΠΎ ΡΡΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ #include. ΠΠΎΡ ΡΡΠΎ Ρ ΡΠ·Π½Π°Π»:
β’Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ Π ΠΈ Π‘ <vector> Π²ΠΊΠ»ΡΡΠ°Π΅Ρ <string>;
β’Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Π‘ <algorithm> Π²ΠΊΠ»ΡΡΠ°Π΅Ρ <string>;
β’Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ Π‘ ΠΈ D <iostream> Π²ΠΊΠ»ΡΡΠ°Π΅Ρ <iterator>;
β’Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ D <iostream> Π²ΠΊΠ»ΡΡΠ°Π΅Ρ <string> ΠΈ <vector>;
β’Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ D ΠΈ Π <string> Π²ΠΊΠ»ΡΡΠ°Π΅Ρ <algorithm>;
β’Π²ΠΎ Π²ΡΠ΅Ρ ΠΏΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ <set> Π²ΠΊΠ»ΡΡΠ°Π΅Ρ <functional>
ΠΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ»ΡΡΠ°Ρ ΠΌΠ½Π΅ ΡΠ°ΠΊ ΠΈ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΡΠ±ΡΠ°Π½Π½ΡΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΌΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π. ΠΠΎ Π·Π°ΠΊΠΎΠ½Ρ ΠΡΡΡΠΈ Π²Π°ΠΌ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²Π΅ΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½Π° ΡΠ°ΠΊΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , ΠΊΠ°ΠΊ Π, Π‘, D ΠΈ Π, ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠ°ΠΊ Π, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅. Π’Π°ΠΊ Π±ΡΠ²Π°Π΅Ρ Π²ΡΠ΅Π³Π΄Π°.