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

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования, Π³Π΄Π΅ массив ΠΈΠΌΠ΅Π΅Ρ‚ встроСнноС свойство Length ΠΈΠ»ΠΈ Count, Π² 1Π‘ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ этому вопросу Π±ΠΎΠ»Π΅Π΅ спСцифичСн. Π­Ρ‚ΠΎ связано с историчСским Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ массивы здСсь Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ частный случай Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅ΠΉ структуры. ПониманиС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² критичСски Π²Π°ΠΆΠ½ΠΎ для написания эффСктивного ΠΈ бСзопасного ΠΊΠΎΠ΄Π°.

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

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ° Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Массив Π² 1Π‘

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

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

ВнутрСнняя рСализация массива Π² 1Π‘ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° для быстрого доступа ΠΏΠΎ индСксу, Π½ΠΎ Π½Π΅ содСрТит скрытого ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ свойства, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»ΠΎ Π±Ρ‹ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€. Π­Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ заставляСт программистов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСциализированныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Built-in Language. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого Ρ„Π°ΠΊΡ‚Π° ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ свойства Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ лишь ΠΎΡ‚Π½ΠΈΠΌΠ°ΡŽΡ‚ врСмя.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ТСстко Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ константы Π² условиях Ρ†ΠΈΠΊΠ»ΠΎΠ², Ссли структура Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² runtime. Π­Ρ‚ΠΎ прямой ΠΏΡƒΡ‚ΡŒ ΠΊ ошибкС"ИндСкс Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ массива".

Основной ΠΌΠ΅Ρ‚ΠΎΠ΄ получСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ‡Π΅Ρ€Π΅Π· Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°

ЕдинствСнным ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ способом ΡƒΠ·Π½Π°Ρ‚ΡŒ количСство элСмСнтов Π² массивС являСтся использованиС встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° (ΠΈΠ»ΠΈ StrLen Π² англоязычной вСрсии). НСсмотря Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ассоциируСтся со строками, данная функция ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π° для всСх Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ. Она Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅ количСству элСмСнтов.

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

МойМассив = Новый Массив;

МойМассив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 1");

МойМассив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 2");

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(МойМассив);

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π’ массивС элСмСнтов:" + ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ);

ИспользованиС Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° являСтся стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ Π²ΠΎ всСм сообщСствС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² 1Π‘. Π›ΡŽΠ±Ρ‹Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ элСмСнтов Π² Ρ†ΠΈΠΊΠ»Π΅ с Ρ†Π΅Π»ΡŒΡŽ подсчСта, ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π΄ΡƒΡ€Π½Ρ‹ΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ ΠΈ приводят ΠΊ Π½Π΅ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½ΠΎΠΌΡƒ расходу рСсурсов процСссора, особСнно Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° Π΄Π°ΠΆΠ΅ для пустых массивов β€” ΠΎΠ½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ 0, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ условий заполнСния.

Различия ΠΌΠ΅ΠΆΠ΄Ρƒ Массивом ΠΈ БпискомЗначСний

Часто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡƒΡ‚Π°ΡŽΡ‚ Ρ‚ΠΈΠΏ Массив с Ρ‚ΠΈΠΏΠΎΠΌ БписокЗначСний. Π₯отя ΠΎΠ±Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° слуТат для хранСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡ… внутрСнняя структура ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ сущСствСнно Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ. БписокЗначСний β€” это Π±ΠΎΠ»Π΅Π΅ слоТный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ… для отобраТСния Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй ΠΈΠ»ΠΈ настроСк ΠΎΡ‚Π±ΠΎΡ€ΠΎΠ².

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Ρƒ БпискаЗначСний встроСнного свойства ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ массива Π²Ρ‹ обязаны Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, для списка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ свойству Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ знания Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ свойство .ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ массиву, систСма выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции ΠΈΠ»ΠΈ выполнСния, сообщив, Ρ‡Ρ‚ΠΎ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ свойства. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всСгда Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏ вашСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄ написаниСм ΠΊΠΎΠ΄Π° получСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

  • πŸ“¦ Массив: Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°, индСксы ΠΎΡ‚ 0, высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ доступа.
  • πŸ“‹ БписокЗначСний: ΠΈΠΌΠ΅Π΅Ρ‚ свойство .ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ удалСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ….
  • πŸ”„ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: ΠΈΠΌΠ΅Π΅Ρ‚ свойство .ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ (строки), структурированныС Π΄Π°Π½Π½Ρ‹Π΅ с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ.
πŸ“Š Π‘ ΠΊΠ°ΠΊΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
Массив
БписокЗначСний
Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° пустых массивов ΠΈ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ случаи

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ситуации, ΠΊΠΎΠ³Π΄Π° массив Π½Π΅ содСрТит Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях функция Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ноль. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ являСтся прСдсказуСмым ΠΈ бСзопасным, ΠΎΠ΄Π½Π°ΠΊΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° вашСго прилоТСния Π΄ΠΎΠ»ΠΆΠ½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ этот сцСнарий.

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» ΠΏΠΎ элСмСнтам пустого массива с использованиСм условия"МСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ" ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ лишнСй ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, Ссли индСксация рассчитана Π½Π΅Π²Π΅Ρ€Π½ΠΎ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Для i = 0 По Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Массив) - 1 ΠΏΡ€ΠΈ пустом массивС прСвратится Π² Для i = 0 По -1, Ρ‡Ρ‚ΠΎ Π² 1Π‘ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° Π½Π΅ выполнится Π½ΠΈ Ρ€Π°Π·Ρƒ, Ρ‡Ρ‚ΠΎ являСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ.

Однако, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ†ΠΈΠΊΠ» Π²ΠΈΠ΄Π° Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° пустоту часто Π½Π΅ трСбуСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ сам ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ отсутствиС элСмСнтов. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, явная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠ΅Ρ€Π΅Π΄ критичСскими опСрациями (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту Массив[0]) являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ программирования.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ элСмСнту ΠΏΠΎ индСксу 0 всСгда провСряйтС, Ρ‡Ρ‚ΠΎ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Массив) > 0. Π˜Π½Π°Ρ‡Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅"ИндСкс Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ массива" ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с пустой ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями

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

Π’ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Бпособ получСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π’ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ
Массив Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Массив) Число Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ функция для всСх индСксируСмых Ρ‚ΠΈΠΏΠΎΠ²
БписокЗначСний Бписок.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Число Бвойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС Π² Ρ†ΠΈΠΊΠ»Π°Ρ…
Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π’Π°Π±Π»ΠΈΡ†Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Число Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство строк Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π”Π΅Ρ€Π΅Π²ΠΎ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Число Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство элСмСнтов Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π° Ρ‡Π°Ρ‰Π΅ всСго Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ Массивом ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: Ссли Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΅ΡΡ‚ΡŒ свойство ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ. Если свойства Π½Π΅Ρ‚ (ΠΊΠ°ΠΊ Ρƒ Массива, Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ БоотвСтствия) β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивом

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

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

Вопрос ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими массивами часто Π²ΠΎΠ»Π½ΡƒΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² высоконагруТСнных систСм. БущСствуСт ΠΌΠΈΡ„, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ условия Ρ†ΠΈΠΊΠ»Π° Для замСдляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ функция выполняСтся Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ соврСмСнных вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 этот ΠΌΠΈΡ„ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ развСян компилятором, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹.

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

Π“Ρ€Π°Π½ΠΈΡ†Π° = Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉΠœΠ°ΡΡΠΈΠ²);

Для i = 0 По Π“Ρ€Π°Π½ΠΈΡ†Π° - 1 Π¦ΠΈΠΊΠ»

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° элСмСнта

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

ИспользованиС конструкции Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ часто являСтся Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° избавляСт ΠΎΡ‚ нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ индСксами ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. Однако, Ссли Π²Π°ΠΌ критичСски Π²Π°ΠΆΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ индСкс элСмСнта (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для удалСния ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹), Ρ‚ΠΎ классичСский Ρ†ΠΈΠΊΠ» с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ расчСтом Π΄Π»ΠΈΠ½Ρ‹ остаСтся Π±Π΅Π·Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ.

ВлияниС вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ

Π’ старых вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Π΄ΠΎ 8.3.10) Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² условии Ρ†ΠΈΠΊΠ»Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ³ Π΄Π°Π²Π°Ρ‚ΡŒ нСбольшой ΠΎΠ²Π΅Ρ€Ρ…Π΅Π΄. Π’ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·Π°Ρ… Π΄Π²ΠΈΠΆΠΎΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ 1Π‘ автоматичСски ΠΊΡΡˆΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° для условий Ρ†ΠΈΠΊΠ»Π°, поэтому ручная оптимизация стала ΠΌΠ΅Π½Π΅Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΠΉ, Π½ΠΎ всС Π΅Ρ‰Π΅ рСкомСндуСтся для чистоты ΠΊΠΎΠ΄Π°.

ЧастыС ошибки ΠΈ способы ΠΈΡ… устранСния

Одной ΠΈΠ· самых распространСнных ошибок являСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Count, ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ для программистов, пСрСходящих с C# ΠΈΠ»ΠΈ Java. Π’ 1Π‘ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρƒ массива Π½Π΅Ρ‚, ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° подсвСтит это ΠΊΠ°ΠΊ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ВсСгда провСряйтС автоподсказки (Ctrl+Space) для доступных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ структурами. Если Ρƒ вас Π΅ΡΡ‚ΡŒ массив массивов, функция Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° Π²Π΅Ρ€Π½Π΅Ρ‚ количСство Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… массивов, Π° Π½Π΅ ΠΎΠ±Ρ‰Π΅Π΅ количСство элСмСнтов Π²ΠΎ всСх Π½ΠΈΡ…. Для подсчСта ΠΎΠ±Ρ‰Π΅Π³ΠΎ количСства ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… элСмСнтов потрСбуСтся рСкурсивный ΠΎΠ±Ρ…ΠΎΠ΄ ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ"ΠžΡ„Ρ„Ρ‚ΠΎΠΏ" Π² ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΈ: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π² строку Ρ‡Π΅Ρ€Π΅Π· Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки. Π­Ρ‚ΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ даст Π΄Π»ΠΈΠ½Ρƒ тСкстового прСдставлСния, Π° Π½Π΅ количСство элСмСнтов, ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ рСсурсов.

  • ❌ Ошибка: ИспользованиС Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ β€” свойства Π½Π΅ сущСствуСт.
  • ❌ Ошибка: Π¦ΠΈΠΊΠ» Для i = 1 По Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Массив) β€” пропуск ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта (индСкс 0) ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.
  • βœ… РСшСниС: ВсСгда Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» с нуля ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ Π½Π° Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° - 1.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ возмоТности ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях 1Π‘. Если Π²Ρ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ"Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅" для ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ вычислСния Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Массив).

πŸ’‘

Ѐункция Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтом для всСх индСксированных ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π² 1Π‘, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ свойство ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ доступно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для спСциализированных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° БписокЗначСний ΠΈΠ»ΠΈ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ (FAQ)

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° для Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ БоотвСтствия?

Π”Π°, функция Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°. Для Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΎΠ½Π° Π²Π΅Ρ€Π½Π΅Ρ‚ количСство ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, Π° для БоотвСтствия β€” количСство ΠΏΠ°Ρ€ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ стандартноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ для всСх ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π² 1Π‘.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠΎΠΉ Ρ†ΠΈΠΊΠ» Π½Π΅ выполняСтся, Ссли Π² массивС ΠΎΠ΄ΠΈΠ½ элСмСнт?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ условиС Для i = 0 По Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Массив) - 2 ΠΈΠ»ΠΈ ошиблись Π² Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ…. Для ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта Π΄Π»ΠΈΠ½Π° Ρ€Π°Π²Π½Π° 1, индСкс Ρ€Π°Π²Π΅Π½ 0. Π¦ΠΈΠΊΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Для i = 0 По 0. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

Как быстро ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ массив ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ пуст?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Массив.ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ. ПослС этого Π²Ρ‹Π·ΠΎΠ² Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Массив) Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ 0. Π­Ρ‚ΠΎ самый быстрый способ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π±Π΅Π· создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ВлияСт Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°?

НСт, Π½Π΅ влияСт. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива β€” это опСрация константной слоТности O(1), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ информация ΠΎ количСствС элСмСнтов хранится Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° массива ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°.