Π Π°Π±ΠΎΡ‚Π° с Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ часто Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ гибкости, особСнно ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ динамичСски Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€Ρ‹ записСй для ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΎΠΊ. Одна ΠΈΠ· Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, β€” это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ простой список элСмСнтов, хранящийся Π² массивС, Π² Π±ΠΎΠ»Π΅Π΅ структурированный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ трСбуСтся для использования стандартных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² сортировки, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ запросы.

НСсмотря Π½Π° ΠΊΠ°ΠΆΡƒΡ‰ΡƒΡŽΡΡ простоту, процСсс ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ свои Π½ΡŽΠ°Π½ΡΡ‹, связанныС с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΡΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² здСсь Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, поэтому приходится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ добавлСния строк Π² Ρ†ΠΈΠΊΠ»Π΅. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ строгой схСмой ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° заполнСния, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ массива.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ пСрСноса Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΈ рассмотрим ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠ½ΠΎΠ³Π΄Π° использованиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° записСй ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ эффСктивным Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Ρ‚Ρ€ΠΎΠ½Π΅ΠΌ вопросы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ структурами Π²Π½ΡƒΡ‚Ρ€ΠΈ массива.

ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ массивами

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ написанию ΠΊΠΎΠ΄Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ области примСнСния этих Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Массив Π² 1Π‘ прСдставляСт собой ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ список, Π³Π΄Π΅ элСмСнты ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ любого Ρ‚ΠΈΠΏΠ° ΠΈ Π½Π΅ обязаны ΠΈΠΌΠ΅Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΡƒΡŽ структуру. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… вычислСний.

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ описания ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. КаТдая ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ имя, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ, ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, Π΄Π»ΠΈΠ½Ρƒ. ИмСнно эта ΡΡ‚Ρ€ΠΎΠ³ΠΎΡΡ‚ΡŒ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² качСствС источника Π΄Π°Π½Π½Ρ‹Ρ… для запросов ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ β€” это ΠΏΠΎ сути процСсс структурирования хаоса.

Частой ошибкой Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² являСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строку Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ наличия ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ runtime-ошибкам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слоТно ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… конфигурациях. ВсСгда Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ схСмы Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· простого списка строк.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°Ρ… Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠ°ΠΌ элСмСнтов Π² массивС. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ число Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ Ρ‚ΠΈΠΏΠ° "Π‘Ρ‚Ρ€ΠΎΠΊΠ°" Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ привСдСния Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°.

Если ваш массив содСрТит слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, структуры ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, процСсс услоТняСтся. Π’Π°ΠΌ придСтся Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поля структуры, Π»ΠΈΠ±ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ вСсь ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Ρ‚ΠΈΠΏΠ° Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°. Π’Ρ‹Π±ΠΎΡ€ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π² дальнСйшСм Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ полям этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

πŸ’‘

ΠŸΡ€ΠΈ создании ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π’Π°Π±Π»ΠΈΡ†Ρ‹Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(). Если Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… нСизвСстСн Π·Π°Ρ€Π°Π½Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ "Π‘Ρ‚Ρ€ΠΎΠΊΠ°", Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎ ΠΏΠΎΡ‚Π΅Ρ€Π΅ возмоТности матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Алгоритм прямого прСобразования Π΄Π°Π½Π½Ρ‹Ρ…

Π‘Π°ΠΌΡ‹ΠΉ straightforward способ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ пошаговоС созданиС структуры ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΅Ρ‘ строками. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ понятСн для чтСния ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ΄Π°, хотя ΠΈ Π½Π΅ являСтся самым быстрым для гигантских массивов. Π›ΠΎΠ³ΠΈΠΊΠ° строится Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ†ΠΈΠΊΠ»Π° Для КаТдого, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ исходный массив.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ создаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ добавляСм Π² Π½Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ. Имя ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ понятныС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅" ΠΈΠ»ΠΈ "Π­Π»Π΅ΠΌΠ΅Π½Ρ‚". ПослС ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ схСмы ΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ массиву ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ().

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ значСния. Если массив ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΉ (содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числа ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строки), ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚. Однако, Ссли массив ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ, рСкомСндуСтся явно ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ с составным Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° Π½ΠΈΠΆΠ΅ дСмонстрируСт Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ сцСнарий:

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ… = Новый Массив;

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π’ΠΎΠ²Π°Ρ€ 1");

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π’ΠΎΠ²Π°Ρ€ 2");

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π’ΠΎΠ²Π°Ρ€ 3");

Π’Π°Π±Π»ΠΈΡ†Π° = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

Π’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("НаимСнованиС", Π’ΠΈΠΏ("Π‘Ρ‚Ρ€ΠΎΠΊΠ°"));

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ… Π¦ΠΈΠΊΠ»

НоваяБтрока = Π’Π°Π±Π»ΠΈΡ†Π°.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

НоваяБтрока.НаимСнованиС = Π­Π»Π΅ΠΌΠ΅Π½Ρ‚;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

  • πŸ“‹ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ происходит Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π° заполнСния.
  • πŸ“‹ ΠœΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ссылку Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.
  • πŸ“‹ ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ происходит Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ Π’Π°Π±Π»ΠΈΡ†Π°.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() систСма выдСляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ Π½ΠΎΠ²ΡƒΡŽ строку. Π’ Ρ†ΠΈΠΊΠ»Π°Ρ… Π½Π° дСсятки тысяч ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‚Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сборщик мусора. Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ срСдних массивов Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ являСтся ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ читаСмости ΠΈ скорости.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ…

Когда Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ дСсятков ΠΈΠ»ΠΈ сотСн тысяч записСй, простой Ρ†ΠΈΠΊΠ» ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΡƒΠ·ΠΊΠΈΠΌ мСстом. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ() для массового добавлСния строк, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускоряСт процСсс. ВмСсто построчного добавлСния ΠΌΡ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ массив структур ΠΈΠ»ΠΈ массив массивов ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΈΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° исходный массив Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² массив структур, Π³Π΄Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ структур ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π² скорости ΠΏΡ€ΠΈ вставкС ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ 30-50% Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ…. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΄Π΅ ΠΌΡ‹ сначала Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ массив структур, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π΅Π³ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ схСма ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ создана Π·Π°Ρ€Π°Π½Π΅Π΅, ΠΈΠ½Π°Ρ‡Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π½Π΅ смоТСт ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. ИмСна ΠΏΠΎΠ»Π΅ΠΉ Π² структурах Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π² точности ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ (рСгистр Π²Π°ΠΆΠ΅Π½!).

Π’Π°Π±Π»ΠΈΡ†Π° = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

Π’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Код", Π’ΠΈΠΏ("Число"));

Π’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Имя", Π’ΠΈΠΏ("Π‘Ρ‚Ρ€ΠΎΠΊΠ°"));

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ—Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ = Новый Массив;

Для ИндСкс = 1 По 10000 Π¦ΠΈΠΊΠ»

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°;

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Код", ИндСкс);

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Имя", "Π­Π»Π΅ΠΌΠ΅Π½Ρ‚" + ИндСкс);

ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ—Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π’Π°Π±Π»ΠΈΡ†Π°.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ(ΠœΠ°ΡΡΠΈΠ²Π”Π»ΡΠ—Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ);

ИспользованиС Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников, Π³Π΄Π΅ объСм ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π°Ρ€Π°Π½Π΅Π΅ нСизвСстСн ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π΅Π»ΠΈΠΊ. Однако, Ссли массив исходных Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΆΠ΅ сущСствуСт Π² Π½ΡƒΠΆΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° созданиС структур ΠΌΠΎΠ³ΡƒΡ‚ Π½ΠΈΠ²Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ ΠΎΡ‚ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ() ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ вставкой Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ссли Π² Π½Π΅ΠΉ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ строки. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ потСряСтС Π²Π°ΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

ΠΡŽΠ°Π½ΡΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ()

ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ() автоматичСски опрСдСляСт Ρ‚ΠΈΠΏΡ‹ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, Ссли ΠΎΠ½ΠΈ Π΅Ρ‰Π΅ Π½Π΅ созданы, Π½Π° основС ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСмСнтов массива. Однако, Ссли ΠΏΠ΅Ρ€Π²Ρ‹Π΅ элСмСнты ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ НСопрСдСлСно ΠΈΠ»ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ…, схСма ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. ВсСгда явно Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ для надСТности.

Π Π°Π±ΠΎΡ‚Π° со слоТными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ структурами

Часто массив содСрТит Π½Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ значСния, Π° слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ БоотвСтствиС. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях простоС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ значСния Π² ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдостаточным, Ссли трСбуСтся дальнСйшая Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° ΠΏΠΎ полям этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅: Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΠΈΠ»ΠΈ "Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ" Π΅Π³ΠΎ Π² нСсколько ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ.

Если Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ ΠΏΡƒΡ‚ΡŒ распаковки, Π²Π°ΠΌ потрСбуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ поля структуры. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ свойствам элСмСнта массива ΠΈ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ полям строки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π­Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ объСм ΠΊΠΎΠ΄Π°, Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌΠΈ для использования Π² запросах.

Π’ случаС, ΠΊΠΎΠ³Π΄Π° структура ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² массивС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈΠ»ΠΈ поля нСизвСстны Π·Π°Ρ€Π°Π½Π΅Π΅, Ρ€Π°Π·ΡƒΠΌΠ½Π΅Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ Ρ‚ΠΈΠΏΠ° Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ‚ΡƒΠ΄Π° вСсь ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ возмоТности Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ срСдствами языка запросов 1Π‘ Π±Π΅Π· использования Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π’ΠΈΠΏ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ НСдостаток
ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π‘Ρ‚Ρ€ΠΎΠΊΠ°/Число Высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Π°Ρ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ
Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ всСх ΠΏΠΎΠ»Π΅ΠΉ Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² запросах
Π‘ΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ошибок Ρ‚ΠΈΠΏΠΎΠ² НСльзя ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ числСнно
Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ВысокоС ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ массива ситуация услоТняСтся Π΅Ρ‰Π΅ большС. Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² ячСйку Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ сСриализации. Π§Π°Ρ‰Π΅ всСго Π² Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ flattening (ΡΠΏΠ»ΡŽΡ‰ΠΈΠ²Π°Π½ΠΈΠ΅) Π΄Π°Π½Π½Ρ‹Ρ…, создавая Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ строк.

πŸ’‘

Π’Ρ‹Π±ΠΎΡ€ стратСгии хранСния слоТных Π΄Π°Π½Π½Ρ‹Ρ… зависит ΠΎΡ‚ Ρ†Π΅Π»ΠΈ: для ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈ запросов Π½ΡƒΠΆΠ½Π° плоская структура с ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ β€” сохранСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ валидация Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… источников критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок. Массив ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ элСмСнты Ρ‚ΠΈΠΏΠ° НСопрСдСлСно (Null), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ записи Π² строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ Π²Ρ‹Π·ΠΎΠ²ΡƒΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ИспользованиС Π±Π»ΠΎΠΊΠΎΠ² ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°.. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ позволяСт gracefully ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ситуации.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ аспСкт β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π»ΠΈΠ½Ρ‹ строк. Если Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π‘Ρ‚Ρ€ΠΎΠΊΠ°(10), Π° Π² массивС ΠΏΡ€ΠΈΡˆΠ»Π° строка Π΄Π»ΠΈΠ½ΠΎΠΉ 50 символов, систСма автоматичСски ΠΎΠ±Ρ€Π΅ΠΆΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² зависимости ΠΎΡ‚ настроСк ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ вСрсии. Явная валидация ΠΏΠ΅Ρ€Π΅Π΄ записью ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

РСкомСндуСтся ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π° заполнСния провСсти ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· массива, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… элСмСнтов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π° схСма Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Для динамичСских сцСнариСв ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ опрСдСлСния Ρ‚ΠΈΠΏΠ° Π½Π° Π»Π΅Ρ‚Ρƒ, хотя это ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅.

  • πŸ›‘οΈ ВсСгда провСряйтС элСмСнт Π½Π° Π’ΠΈΠΏΠ—Π½Ρ‡().Имя = "НСопрСдСлСно" ΠΏΠ΅Ρ€Π΅Π΄ записью.
  • πŸ›‘οΈ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€ΠΎΠΊΠ°() для бСзопасного привСдСния ΠΊ строковому Ρ‚ΠΈΠΏΡƒ.
  • πŸ›‘οΈ Π›ΠΎΠ³ΠΈΡ€ΡƒΠΉΡ‚Π΅ ошибки Π² ΠΆΡƒΡ€Π½Π°Π» рСгистрации, Ссли конвСртация ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π° для бизнСса.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ символам, Ссли Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ Π²Π΅Π±-сСрвисов. НСвидимыС символы ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ, особСнно Ссли ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡ для соСдинСний ΠΈΠ»ΠΈ поисков.

ИспользованиС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² прСобразования Π² запросах

Главная Ρ†Π΅Π»ΡŒ прСобразования массива Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ часто Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² возмоТности Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΉ SQL-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ запрос. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс источника Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² конструктор запроса ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Запрос Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

Для этого Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. Бинтаксис запроса остаСтся стандартным: Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² тСкстС запроса. Π­Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠΎΡ‰Π½Ρ‹Π΅ возмоТности Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ, Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, нСдоступныС ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ массивом.

Запрос = Новый Запрос;

Запрос.ВСкст = "ВЫБРАВЬ НаимСнованиС, ΠšΠžΠ›Π˜Π§Π•Π‘Π’Π’Πž(*) КАК ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π˜Π— Π’Π°Π±Π»ΠΈΡ†Π°Π”Π°Π½Π½Ρ‹Π΅ Π‘Π“Π Π£ΠŸΠŸΠ˜Π ΠžΠ’ΠΠ’Π¬ ПО НаимСнованиС";

Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("Π’Π°Π±Π»ΠΈΡ†Π°Π”Π°Π½Π½Ρ‹Π΅", Π’Π°Π±Π»ΠΈΡ†Π°);

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ().Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ();

Π›ΡŽΠ±ΠΎΠ΅ нСсоотвСтствиС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС выполнСния запроса. Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ слоТныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… (структуры) Π² запросах ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ, поэтому ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² запросы ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы сСрвСра. Если объСм Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 100 000 строк, рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ записи Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… вмСсто использования Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² памяти.

πŸ“Š Какой способ заполнСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
ΠŸΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Ρ†ΠΈΠΊΠ»Π΅
ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ()
Π—Π°ΠΏΠΈΡΡŒ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π‘Π”
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ массивы

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² массив?

Π”Π°, это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ массив ΠΈ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΠΎ строкам Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, добавляя Π½ΡƒΠΆΠ½Ρ‹Π΅ поля ΠΈΠ»ΠΈ всю строку Π² массив. Однако, ΠΏΡ€ΠΈ этом Π²Ρ‹ потСряСтС прСимущСств Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ структуры, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстрого поиска ΠΏΠΎ индСксу ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΏΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива?

Если исходный массив содСрТит структуры, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° структуры. Если массив простой (список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² нСсколько ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈΠ»ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вычисляСмыС поля (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ "ΠŸΠΎΡ€ΡΠ΄ΠΊΠΎΠ²Ρ‹ΠΉΠΠΎΠΌΠ΅Ρ€" с индСксом элСмСнта).

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ() Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС Ρ†ΠΈΠΊΠ»Π°?

ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ() ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Он выполняСт Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ количСство Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² интСрфСйсных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ρ†ΠΈΠΊΠ» Для КаТдого с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ управлСния строками Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² массивС Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ?

Π’ этом случаС слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ с Ρ‚ΠΈΠΏΠΎΠΌ Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉΠšΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉΠ’ΠΈΠΏ ΠΈΠ»ΠΈ просто Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ привСдя всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΊ строковому Π²ΠΈΠ΄Ρƒ. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” созданиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Ссли Π»ΠΎΠ³ΠΈΠΊΠ° прилоТСния это позволяСт.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ внСшнСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ?

БСзусловно. Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ являСтся стандартным Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Ρ„ΠΎΡ€ΠΌΡ‹, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈ внСшниС соСдинСния. Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· основных способов ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ подсистСмами ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.