ΠΠ΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π·Π°Π΄ (ΠΎΡΠ΅Π½ΡΡ 2016), ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΡΠ°Π» Π²ΠΎΠΏΡΠΎΡ ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π±Ρ Π½Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅ΡΠΈ ΡΠ»Π΅Π³Π°Π½ΡΠ½Π΅ΠΉ, ΠΏΡΠΎΡΠ΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Π΅ΠΉ, ΡΠΏΡΠΎΡΠ°Π» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Π Π² ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅ Π²ΡΠΎΠ΄Π΅ Π±Ρ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠΊΡΡΡΠ°ΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π½Π΅ ΠΌΠ°ΡΡΡΠ°Π±Ρ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠ»Ρ ΡΠ΅Ρ ΠΊΡΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ, 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ β ΡΡΠΎ ΡΡΠ΅Π΄Π° Π΄Π»Ρ Π±ΡΡΡΡΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ runtime Π΄Π»Ρ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π·Π½ΡΡ ΠΠ‘ ΠΈ Π‘Π£ΠΠ. Π ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ Π² ΡΠΎΡΡΠ°Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π²Ρ ΠΎΠ΄ΡΡ:
- , ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Windows ΠΈ Linux
- , ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΏΠΎ http(s) ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Windows, Linux, macOS
- , ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ Chrome, Internet Explorer, Microsoft Edge, Firefox, Safari (Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° JavaScript)
- Π‘ΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (), ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Windows, Linux, macOS
- ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Windows, Linux, macOS
- , ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΠΎ http(s), ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Android, iOS, Windows
- β ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΡΠ»Π°ΠΉΠ½ΠΎΠ²ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π½Π° Android, iOS, Windows
- Π‘ΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ , Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Java
- Π‘Π΅ΡΠ²Π΅Ρ
ΠΡ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΏΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΡ ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΠ‘ β ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ Π±Π°Π·Π° ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΎΠ±ΡΠ°Ρ Π½Π° 99%, ΠΊΠ»ΠΈΠ΅Π½ΡΠ° β ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 95%. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° C++ ΠΈ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΊΠΎΠ΄Π°:
- 10 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΡΡΠΎΠΊ Π‘++ ΠΊΠΎΠ΄Π°,
- 14 ΡΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²,
- 60 ΡΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²,
- ΠΏΠΎΠ»ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
Π Π²ΡΠ΅ ΡΡΠΎ Ρ ΠΎΠ·ΡΠΉΡΡΠ²ΠΎ Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π½Π° C++14. Π ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΠΎ Π΄Π΅Π»Π°Π»ΠΈ ΠΈ Ρ ΡΠ΅ΠΌ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅, ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΈ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ.

ΠΠΈΡΠΊΠ»Π΅ΠΉΠΌΠ΅Ρ
ΠΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π½ΠΈΠΆΠ΅ ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ/Π±ΡΡΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, (Π½Π΅)Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΠ΄Π½ΠΎ: ΡΡΠΎ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ ΠΠΠ― ΠΠΠ‘. ΠΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π»Ρ Π²Π°ΡΠΈΡ Π·Π°Π΄Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΡ ΠΆΠ΅ ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ ΠΎΡ ΡΠ²ΠΎΠΈΡ Π·Π°Π΄Π°Ρ: Π±ΡΠ°Π»ΠΈ ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ Π½Π°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΡΠ΅, ΠΏΡΠΎΠ³ΠΎΠ½ΡΠ»ΠΈ Π½Π° Π½ΠΈΡ ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π° Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Ρ.ΠΏ., ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ β ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π»ΠΈ Π½Π°Ρ ΠΈ Π½Π°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ. Π ΠΏΠΎΡΡΡΠΏΠ°Π»ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ.
Π§ΡΠΎ Ρ Π½Π°Ρ Π±ΡΠ»ΠΎ
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΌΡ ΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠΎΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ 8 Π½Π° Microsoft Visual Studio. ΠΡΠΎΠ΅ΠΊΡ Π½Π°ΡΠ°Π»ΡΡ Π² Π½Π°ΡΠ°Π»Π΅ 2000-Ρ ΠΈ Ρ Π½Π°Ρ Π±ΡΠ»Π° Π²Π΅ΡΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ Windows. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Ρ ΡΠ΅Ρ ΠΏΠΎΡ ΠΊΠΎΠ΄ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π»ΡΡ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π±ΡΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Ρ. ΠΠΎ ΠΊΠΎΠ΄ ΠΏΠΈΡΠ°Π»ΡΡ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ 1998 Π³ΠΎΠ΄Π°, ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ°Π²ΡΠ΅ ΡΠ³Π»ΠΎΠ²ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Ρ Π½Π°Ρ Π±ΡΠ»ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠ»Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, Π²ΠΎΡ ΡΠ°ΠΊ:
vector<vector<int> > IntV;Π 2006 Π³ΠΎΠ΄Ρ, Ρ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 8.1, ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Linux ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π½ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ . ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π±ΡΠ»Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΈΡΠΎΠΊΠΈΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ. Π Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΡ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ std::wstring, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠΈΠΏΠ΅ wchar_t. ΠΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ Π² Windows 2 Π±Π°ΠΉΡΠ°, Π° Π² Linux ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 4 Π±Π°ΠΉΡΠ°. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Π½Π°ΡΠΈΡ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ΅ΡΡΠΈΡΡΠ΅Π½ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΏΡΠΈΡΠΌΠΈ gcc ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΌΠ΅Ρ wchar_t ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π±ΡΠ» ΡΠΎΠΆΠ΅ 2 Π±Π°ΠΉΡΠ°, Π½ΠΎ ΡΠΎΠ³Π΄Π° ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π°Π±ΡΡΡ, Ρ.ΠΊ. ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ glibc, Π° ΡΠ° Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄ 4-Π±Π°ΠΉΡΠ½ΡΠΉ wchar_t. ΠΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌΠΈ Π±ΡΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΌΡΠ»ΡΡΠΈΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ. Π Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ last but not least, Π±ΡΠ»Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΡΠΎΠΊ. Π£ Π½Π°Ρ Π±ΡΠ» ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΡΡΡΠΎΠΊ, Ρ.ΠΊ. Ρ Π½Π°Ρ Π² ΡΠΈΠ»Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠ° ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠΈΡΠΎΠΊΠΎ ΠΈ Π΄Π»Ρ Π½Π°Ρ ΡΡΠΎ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ.
ΠΠ°ΡΠ° ΡΡΡΠΎΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΈΠ΄Π΅ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠΎΠΊ, Π²ΡΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π΅ΡΡ Π² Π½Π°ΡΠ°Π»Π΅ 2000-Ρ . ΠΠΎΠ·Π΄Π½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ΅ΡΠΊΡ ΡΠ°Π±ΠΎΡΠ°Π» Π² Facebook, Ρ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π°ΡΠΈ Π² Π΄Π²ΠΈΠΆΠΊΠ΅ Facebook Π±ΡΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΡΡΡΠΎΠΊΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ Π½Π° ΡΡ ΠΎΠΆΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Ρ (ΡΠΌ. Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ).
Π Π½Π°ΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π΄Π²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ:
- ΠΠ»Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ Π±ΡΡΠ΅Ρ Π² ΡΠ°ΠΌΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΡΡΡΠΎΠΊΠΈ (Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠΈΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π°Π»Π»ΠΎΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ).
- ΠΠ»Ρ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ° . ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΠΏΡΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠΈ/ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ΅ΡΡΠΈΠΊ ΡΡΡΠ»ΠΎΠΊ.
Π§ΡΠΎΠ±Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΌΡ ΠΈΡΠΊΠ»ΡΡΠΈΠ»ΠΈ ΠΈΠ· ΡΠ²ΠΎΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° STLPort ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ stream (ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ), ΡΡΠΎ Π΄Π°Π»ΠΎ Π½Π°ΠΌ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 20%. ΠΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ . Boost Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ stream, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π² ΡΠ²ΠΎΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ API (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ), ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΈΡΠΊΠ»ΡΡΠ°Ρ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ stream. ΠΡΠΎ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π·Π°ΡΡΡΠ΄Π½ΡΠ»ΠΎ Π½Π°ΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Boost.
Π’ΡΠ΅ΡΠΈΠΉ ΠΏΡΡΡ
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡ C++14 ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΡΠ°ΠΊΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ:
- ΠΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π°ΠΌΠΈ STLPort Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡ C++14. ΠΠΏΡΠΈΡ ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΏΡΠΎΡΡΠ°Ρ, Ρ.ΠΊ. ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° STLPort Π±ΡΠ»Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° Π² 2010 Π³ΠΎΠ΄Ρ, ΠΈ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡ Π²Π΅ΡΡ Π΅Π³ΠΎ ΠΊΠΎΠ΄ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
- ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π΄ΡΡΠ³ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ STL, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ C++14. ΠΡΠ°ΠΉΠ½Π΅ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΡΠ»Π° ΠΏΠΎΠ΄ Windows ΠΈ Linux.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΠ‘ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ.
ΠΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π±ΡΠ» ΠΎΡΠ²Π΅ΡΠ³Π½ΡΡ ΡΡΠ°Π·Ρ ΠΈΠ·-Π·Π° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° ΡΠ°Π±ΠΎΡ.
ΠΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π΄ΡΠΌΠ°Π»ΠΈ Π½Π°Π΄ Π²ΡΠΎΡΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ; Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ , Π½ΠΎ ΠΎΠ½ Π½Π° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π» ΠΏΠΎΠ΄ Windows. Π§ΡΠΎΠ±Ρ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ libc++ Π½Π° Windows, ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΠΌΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΌΠΈΠΌ Π²ΡΡ, ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² libc++ Π² ΡΡΠΈΡ ΠΎΠ±Π»Π°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ .
Π ΠΌΡ Π²ΡΠ±ΡΠ°Π»ΠΈ ΡΡΠ΅ΡΠΈΠΉ ΠΏΡΡΡ.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄
ΠΡΠ°ΠΊ, Π½Π°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΎΡΠ»ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ STLPort Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² (Visual Studio 2015 Π΄Π»Ρ Windows, gcc 7 Π΄Π»Ρ Linux, clang 8 Π΄Π»Ρ macOS).
Π ΡΡΠ°ΡΡΡΡ, Π½Π°Ρ ΠΊΠΎΠ΄ ΠΏΠΈΡΠ°Π»ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎ Π³Π°ΠΉΠ΄Π»Π°ΠΉΠ½Π°ΠΌ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π²ΡΡΡΠ΅ΡΠΊΠΈΠ΅ Ρ ΠΈΡΡΡΠ΅ ΡΡΡΠΊΠΈ, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° Π½ΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅ΠΊΠ°Π»Π° ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π³Π»Π°Π΄ΠΊΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π·Π°ΠΌΠ΅Π½ΡΡΡΠΈΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΈΠΌΠ΅Π½Π° ΡΠΈΠΏΠΎΠ², ΠΊΠ»Π°ΡΡΠΎΠ², Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΠΎΠ² ΠΈ ΠΈΠ½ΠΊΠ»ΡΠ΄ΠΎΠ². ΠΠΈΠ³ΡΠ°ΡΠΈΡ Π·Π°ΡΡΠΎΠ½ΡΠ»Π° 10 000 ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² (ΠΈΠ· 14 000). wchar_t Π·Π°ΠΌΠ΅Π½ΡΠ»ΡΡ Π½Π° char16_t; ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ wchar_t, Ρ.ΠΊ. char16_t Π½Π° Π²ΡΠ΅Ρ ΠΠ‘ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 2 Π±Π°ΠΉΡΠ° ΠΈ Π½Π΅ ΠΏΠΎΡΡΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ Windows ΠΈ Linux.
ΠΠ΅ ΠΎΠ±ΠΎΡΠ»ΠΎΡΡ Π±Π΅Π· Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² STLPort ΠΈΡΠ΅ΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π΅ΡΠ²Π½ΠΎ ΡΠΊΠ°ΡΡΠΈΡΡ ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅ΡΡΠ°Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ. Π Π½ΠΎΠ²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ ΡΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ Π±ΡΠ»ΠΎ ΡΠΆΠ΅ Π½Π΅Π»ΡΠ·Ρ, ΠΈ ΡΡΠΈ ΠΌΠ΅ΡΡΠ° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΡΡΡΠ½ΡΡ.
ΠΡΠ°ΠΊ, ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π°, ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΠ‘. ΠΠ°ΡΡΠ°Π»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΎΠ².
Π’Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ ΠΏΡΠΎΡΠ΅Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π΄ΠΎ 20-30%) ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (Π΄ΠΎ 10-15%) ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΎ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π°. ΠΡΠΎ Π±ΡΠ»ΠΎ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π½Π΅ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΡΠΎΠΊ. ΠΠΎΡΡΠΎΠΌΡ ΡΡΡΠΎΠΊΡ Π½Π°ΠΌ ΠΎΠΏΡΡΡ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ, ΡΠ»Π΅Π³ΠΊΠ° Π΄ΠΎΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ.
Π’Π°ΠΊΠΆΠ΅ Π²ΡΠΊΡΡΠ»Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π²ΠΎ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ : ΠΏΡΡΡΡΠ΅ (Π±Π΅Π· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²) std::map ΠΈ std::set ΠΈΠ· Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π°Π»Π»ΠΎΡΠΈΡΡΡΡ ΠΏΠ°ΠΌΡΡΡ. Π Ρ Π½Π°Ρ Π² ΡΠΈΠ»Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅ΡΡΠ°Ρ ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ»Π»ΠΎΡΠΈΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π½ΠΎ Π΄Π»Ρ Π½Π°Ρ ΡΡΠΎ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ ΠΊΡΠΈΡΠΈΡΠ½ΡΠΌ β Π½Π° ΡΡΠ΄Π΅ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Ρ Π½Π°Ρ ΠΎΡΡΡΠΈΠΌΠΎ ΡΠΏΠ°Π»Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π²ΡΡΠΎΡΠ»ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ (ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ STLPort). ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΡΡΠΈ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈΠ· Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π½Π° ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡ Boost, Π³Π΄Π΅ ΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π½Π΅ ΠΈΠΌΠ΅Π»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΈ ΡΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠΌ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ°ΠΊ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΡΠ»Π΅ ΠΌΠ°ΡΡΡΠ°Π±Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΠΏΠ΅ΡΠ²Π°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΡΠ°Π±ΠΎΡΠ°Π»Π° Π½Π΅ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΈ ΡΡΡ Π½Π°ΠΌ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΈΡΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π² Windows-ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π¨Π°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ ΠΌΡ Π΄Π²ΠΈΠ³Π°Π»ΠΈΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄, ΠΈ ΠΊ Π²Π΅ΡΠ½Π΅ 2017 (Π²Π΅ΡΡΠΈΡ 8.3.11 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ) ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π±ΡΠ»Π° Π·Π°Π²Π΅ΡΡΠ΅Π½Π°.
ΠΡΠΎΠ³ΠΈ
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡ Π‘++14 Π·Π°Π½ΡΠ» Ρ Π½Π°Ρ ΠΎΠΊΠΎΠ»ΠΎ 6 ΠΌΠ΅ΡΡΡΠ΅Π². ΠΠΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π» ΠΎΠ΄ΠΈΠ½ (Π½ΠΎ ΠΎΡΠ΅Π½Ρ Π²ΡΡΠΎΠΊΠΎΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ) ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, Π° Π½Π° ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡΠ°Π΄ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΡ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ β UI, ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ.Π΄.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΠ» Π½Π°ΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π½Π° Π½ΠΎΠ²Π΅ΠΉΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ°. Π’Π°ΠΊ, Π²Π΅ΡΡΠΈΡ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ 8.3.14 (Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΡΠ΅Π»ΠΈΠ· Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π³ΠΎΠ΄Π°) ΡΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡ .
ΠΠΎΡΠ»Π΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ. ΠΡΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅ Ρ Π½Π°Ρ Π±ΡΠ»Π° ΡΠ²ΠΎΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ STL ΠΈ ΠΎΠ΄ΠΈΠ½ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡ std, ΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π² Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΠ΅ std Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈΠ· Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, Π² Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΠ΅ stdx β Π½Π°ΡΠΈ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π½Π°ΡΠΈΡ Π·Π°Π΄Π°Ρ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, Π² boost β ΡΠ²Π΅ΠΆΠ°Ρ Π²Π΅ΡΡΠΈΡ boost. Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Π·Π°Π΄Π°Ρ.
ΠΠΎΠΌΠΎΠ³Π°Π΅Ρ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈ Β«ΡΠΎΠ΄Π½Π°ΡΒ» ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ () Π΄Π»Ρ ΡΡΠ΄Π° ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠ»ΠΈ Ρ ΠΊΠ»Π°ΡΡΠ° Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΡΠΎ STL ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ ΠΈ Π½Π°Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ capacity ΠΈ ΡΠ΅Π°Π»Π»ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ).
ΠΠΎΠΆΠΊΠ° Π΄Π΅Π³ΡΡ
Π‘Π°ΠΌΠΎΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΠ΅ (Π½ΠΎ Π½Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎΠ΅) ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ β ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ° , ΠΈ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΠΈΠ»Π΄Π° ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΡΡΠ°Π» Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΏΠΎ 60 β 70 ΠΠ±. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΡΡΠ°Π²ΡΠΈΡ
ΠΌΠ΅Π½Π΅Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΌΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΡ
ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠΎ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ°Π±ΠΎΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΄ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ² Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎΠ²ΡΡΠ°ΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΌΡ ΠΌΠ΅ΡΡΡ Π½Π° Π΄ΠΈΡΠΊΠ΅ Π½Π° Π±ΠΈΠ»Π΄ΠΎΠ²ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
ΠΈ Π½Π° ΠΌΠ°ΡΠΈΠ½Π°Ρ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ°ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΈ ΡΠΎΡΠ½ΠΈ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ΠΏΡΠΈΡΡΠ½Π°Ρ, Π½ΠΎ Π½Π΅ ΠΊΡΠΈΡΠΈΡΠ½Π°Ρ, Π΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΡ ΠΏΠΎΠΊΠ° ΠΎΡΠ»ΠΎΠΆΠΈΠ»ΠΈ. ΠΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ ΡΠ΅Ρ
Π½ΠΈΠΊΡ (Π΅Π΅, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Google ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Chrome).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com
