en
Feedback
C++ geek

C++ geek

Open in Telegram

Π£Ρ‡ΠΈΠΌ C/C++ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…

Show more
3 540
Subscribers
-224 hours
-177 days
-2930 days
Posts Archive
Бколько Ρ€Π°Π· Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ†ΠΈΠΊΠ»Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹? ΠžΡ‚Π²Π΅Ρ‚: ΠžΡ‚Π²Π΅Ρ‚: Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС Ρ†ΠΈΠΊΠ» Π½Π΅ выполнится Π½ΠΈΠΊΠΎΠ³Π΄Π°, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ с
Бколько Ρ€Π°Π· Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ†ΠΈΠΊΠ»Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹? ΠžΡ‚Π²Π΅Ρ‚: ΠžΡ‚Π²Π΅Ρ‚: Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС Ρ†ΠΈΠΊΠ» Π½Π΅ выполнится Π½ΠΈΠΊΠΎΠ³Π΄Π°, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ бСсконСчно. ОбъяснСниС: Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ условиС прСкращСния Ρ†ΠΈΠΊΠ»Π° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ char, Π·Π½Π°Ρ‡ΠΈΡ‚, Ρƒ нас присвоСниС n 256 Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ n станСт Ρ€Π°Π²Π½Ρ‹ΠΌ 0. Π¦ΠΈΠΊΠ» прСвратится Π² for(unsigned char i = 0; i < 0; ++i), Π°, Π·Π½Π°Ρ‡ΠΈΡ‚, условиС Ρ†ΠΈΠΊΠ»Π° Π½Π΅ выполняСтся, ΠΈ ΠΌΡ‹ Π΄Π°ΠΆΠ΅ Π½Π΅ Π²ΠΎΠΉΠ΄Ρ‘ΠΌ Π² Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ другая ситуация, ΠΎΠ½ прСвращаСтся Π² for(unsigned char i = 0; i < 256; ++i), ΠΈ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ i Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС, Ρ‡Π΅ΠΌ 255, Ρ‚ΠΎ условиС Ρ†ΠΈΠΊΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ всСгда. ➑️ @cpp_geek

Алгоритм distance Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ расстояниС Π΄ΠΎ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°. Π­Ρ‚Π° функция ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡ€ΠΈ поискС Π½ΡƒΠΆΠ½ΠΎΠ³
Алгоритм distance Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ расстояниС Π΄ΠΎ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°. Π­Ρ‚Π° функция ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡ€ΠΈ поискС Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ индСкса. ➑️ @cpp_geek

ОбъявлСниС классов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π’ init части Ρ†ΠΈΠΊΠ»Π° for ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Π½Π΅ ΠΎΠ΄Π½ΠΈ лишь ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π—Π΄Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ»Π°
ОбъявлСниС классов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π’ init части Ρ†ΠΈΠΊΠ»Π° for ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Π½Π΅ ΠΎΠ΄Π½ΠΈ лишь ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π—Π΄Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ классы ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Благодаря этому ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мноТСство ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. ➑️ @cpp_geek

Ѐункция map::at() Map - это ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² STL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния элСмСнтов Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅
Ѐункция map::at() Map - это ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² STL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния элСмСнтов Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ элСмСнты map всСгда ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ Π΅Π΅ ΠΊΠ»ΡŽΡ‡Ρƒ. ΠšΠ°Ρ€Ρ‚Ρ‹ Π² основном Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² поиска. Ѐункция map::at() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ссылки Π½Π° элСмСнт, связанный с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ k. ➑️ @cpp_geek

Как ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ pure virtual function call ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅? ΠžΡ‚Π²Π΅Ρ‚: НуТно Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ чисто Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² конструкторС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ
Как ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ pure virtual function call ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅? ΠžΡ‚Π²Π΅Ρ‚: НуТно Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ чисто Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² конструкторС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса Ρ‚.Π΅. Π΄ΠΎ создания Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½. Π’.ΠΊ. соврСмСнный компилятор Π½Π΅ даст это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄. ➑️ @cpp_geek

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ C++ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΠΈ послС Ranges Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ нСсортированный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ сохранял Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния, Π½ΠΎ Π² ΠΎΠ±Ρ€Π°
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ C++ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΠΈ послС Ranges Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ нСсортированный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ сохранял Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния, Π½ΠΎ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС. ➑️ @cpp_geek

Алгоритм iota ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ [first,last) ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния val, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π»
Алгоритм iota ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ [first,last) ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния val, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π»ΠΈΡΡŒ ++val послС записи ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта. ➑️ @cpp_geek

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ C++ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΠΈ послС Ranges УдаляСм Π΄Π²Π° Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… ΠΈ Π΄Π²Π° самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… значСния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈ оставляСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅, упоря
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ C++ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΠΈ послС Ranges УдаляСм Π΄Π²Π° Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… ΠΈ Π΄Π²Π° самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… значСния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈ оставляСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅, упорядочСнныС Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅. ➑️ @cpp_geek

Алгоритм lower_bound Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² отсортированной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π΄ΠΈ
Алгоритм lower_bound Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² отсортированной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ [first, last), Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ value, Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ упорядочСнности. ➑️ @cpp_geek

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ссылку ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ? Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ? НСльзя: β€’ Π½ΠΈΠΊΠΎΠ³Π΄Π° нСльзя Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ссылку Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚ΡΡ сразу послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ; β€’ нСльзя Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ссылку Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΅Ρ‘ нСльзя Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ. МоТно: β€’ ΠΊΠΎΠ³Π΄Π° возвращаСтся константная ссылка Π½Π° Ρ‡Π»Π΅Π½ класса; β€’ ΠΊΠΎΠ³Π΄Π° Π’Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ <<, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ = ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ индСксирования, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ссылку - это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ вызываСтся лишний ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ конструктор для Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния, Π½ΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π° Π»ΡƒΡ‡ΡˆΠ΅ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. ➑️ @cpp_geek

Лямбда-выраТСния Π’ C++ 11 появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Они Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² JavaScript, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ сравн
Лямбда-выраТСния Π’ C++ 11 появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Они Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² JavaScript, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π±Π΅Π· ΠΈΠΌΡ‘Π½. Они Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… областях видимости Π² зависимости ΠΎΡ‚ ΠΈΡ… описания, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Π΅ синтаксичСскиС конструкции. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. Лямбда-выраТСния β€” вСсьма ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ инструмСнт для Ρ‚Π΅Ρ… случаСв, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠΎΠ΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Π½ΠΎ для этого Π½Π΅ хочСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ распространённый ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΡ… использования β€” созданиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ сравнСнии Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ➑️ @cpp_geek

ΠŸΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΊΠΎΠ΄Π° для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°. Π•ΡΡ‚ΡŒ Π»ΠΈ прСимущСства использования ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ? ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: c++ vector vec; /* ... .. ... */ for (auto itr = vec.begin(); itr != vec.end(); itr++) { itr->print(); } ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: c++ vector vec; /* ... .. ... */ for (auto itr = vec.begin(); itr != vec.end(); ++itr) { itr->print(); } Π₯отя ΠΎΠ±Π° ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 2 являСтся Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ послС ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° itr++ обходится Π΄ΠΎΡ€ΠΎΠΆΠ΅, Ρ‡Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ++itr. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ пост-ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ копию элСмСнта, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ элСмСнта ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Ρƒ ΠΊΠΎΠΏΠΈΠΈ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ компиляторов автоматичСски ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 1, нСявно прСобразуя Π΅Π³ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 2. ➑️ @cpp_geek

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ C++ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΠΈ послС Ranges ОбъСдиняСм всС строки Π² Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Π² ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ➑️ @cpp_geek
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ C++ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΠΈ послС Ranges ОбъСдиняСм всС строки Π² Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Π² ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ➑️ @cpp_geek

Какая Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ статичСской ΠΈ динамичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ? БтатичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° β€” это Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ компилятор ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания исполняСмого Ρ„Π°ΠΉΠ»Π°. Когда Π²Ρ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΊΠΎΠ΄ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ копируСтся Π² исполняСмый Ρ„Π°ΠΉΠ». Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ» содСрТит свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ копию ΠΊΠΎΠ΄Π° ΠΈΠ· статичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ДинамичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° β€” это Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ нСсколькими ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Когда Π²Ρ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, исполняСмый Ρ„Π°ΠΉΠ» содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ссылки Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅. Код ΠΈΠ· динамичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ загруТаСтся Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован нСсколькими ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ статичСскими ΠΈ динамичСскими Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ. БтатичСскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ нСпосрСдствСнно Π² исполняСмый Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ самодостаточным. ДинамичСскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ исполняСмого Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ нСсколькими ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ исполняСмого Ρ„Π°ΠΉΠ»Π° ΠΈ обСспСчиваСт Π»ΡƒΡ‡ΡˆΠ΅Π΅ использованиС памяти. ➑️ @cpp_geek

Π§Ρ‚ΠΎ Π΄Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈ наслСдовании? ΠžΡ‚Π²Π΅Ρ‚: Π˜Π·ΠΌΠ΅Π½ΡΡŽΡ‚ Π·ΠΎΠ½Ρƒ видимости Ρ‡Π»Π΅Π½ΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. ΠŸΡ€ΠΈ private наслСдовани
Π§Ρ‚ΠΎ Π΄Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈ наслСдовании? ΠžΡ‚Π²Π΅Ρ‚: Π˜Π·ΠΌΠ΅Π½ΡΡŽΡ‚ Π·ΠΎΠ½Ρƒ видимости Ρ‡Π»Π΅Π½ΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. ΠŸΡ€ΠΈ private наслСдовании protected ΠΈ public Ρ‡Π»Π΅Π½Ρ‹ становятся private. ΠŸΡ€ΠΈ protected наслСдовании public становится protected. А ΠΏΡ€ΠΈ public Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ измСняСтся. ➑️ @cpp_geek

std::sort std::sort β€” это функция стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для сортировки элСмСнтов Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ список.
std::sort std::sort β€” это функция стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для сортировки элСмСнтов Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ список. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ std::sort, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» . ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† сортируСмой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ сортируСт элСмСнты Π² Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΌ порядкС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Для опрСдСлСния порядка сортировки ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ свой ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€. ➑️ @cpp_geek

Ѐункция remove_if Ѐункция remove_if() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для удалСния ΠΈΠ· списка всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ истинС ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°
Ѐункция remove_if Ѐункция remove_if() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для удалСния ΠΈΠ· списка всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ истинС ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Ρƒ ΠΈΠ»ΠΈ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Ѐункция выполняСт ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ‡Π»Π΅Π½Ρƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° списка ΠΈ удаляСт всС элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ true для ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π°. ➑️ @cpp_geek

На связи NLB ΠœΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π²Π·Π»Π°ΠΌΡ‹Π²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ российскиС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π‘Π»ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π²Π΅Π·Π΄Π΅ Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ нСльзя, Π΄Π°ΠΆΠ΅ Π² Ρ‡ΡƒΠΆΠΈΡ… ΠΊΠ°Π½Π°Π»Π°Ρ…, вСдь для нас Π½Π΅ сущСствуСт ΠΏΡ€Π°Π²ΠΈΠ»041 НачнСм с ΠΌΠ°Π»ΠΎΠ³ΠΎ: Π’Π·Π»ΠΎΠΌΠ°Π»ΠΈ компанию DIKIDI.ru Π‘Π»ΠΈΠ²Π°Π΅ΠΌ 100К ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ· 40 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ: https://gofile.io/d/ZHO2lD https://file.io/ptyXO5ZOpIqE https://filetransfer.io/data-package/tuYpqDyL#link ΠŸΠ°Ρ€ΠΎΠ»ΡŒ: NLB

vptr (Virtual Pointer) vptr β€” это ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, которая содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… функциях класса
vptr (Virtual Pointer) vptr β€” это ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, которая содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… функциях класса. vptr ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ привСдСния Ρ‚ΠΈΠΏΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ dynamic_cast. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π΄Π²Π° класса: Base ΠΈ Derived. Класс Derived наслСдуСтся ΠΎΡ‚ класса Base ΠΈ пСрСопрСдСляСт Π΅Π³ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ func(). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создали ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Derived ΠΈ присвоили Π΅Π³ΠΎ адрСс ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ Π½Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс Base. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ func() с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ указатСля Π½Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс. Π—Π΄Π΅ΡΡŒ vptr смотрит Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ "Derived", Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² классС Derived. ➑️ @cpp_geek

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» понадобится Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ шаги, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ записи Π² Ρ„Π°ΠΉΠ» с нСбольшими ΠΈΠ·ΠΌΠ΅Π½Π΅Π½
Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» понадобится Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ шаги, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ записи Π² Ρ„Π°ΠΉΠ» с нСбольшими измСнСниями: 1) ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса ifstream ΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ считываниС; 2) ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»; 3) Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ». ➑️ @cpp_geek