Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ со структурами Π΄Π°Π½Π½Ρ‹Ρ…

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

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

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

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Ρ†ΠΈΠΊΠ» с использованиСм индСксов

Π‘Π°ΠΌΡ‹ΠΌ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ понятным способом ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° элСмСнтов являСтся использованиС Ρ†ΠΈΠΊΠ»Π° Для с счСтчиком. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ процСссом: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ элСмСнтам ΠΏΠΎ ΠΈΡ… порядковому Π½ΠΎΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ структуру массива Π² процСссС выполнСния (хотя послСднСС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ остороТности). Бинтаксис этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π΅Π½ программистам, Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ с языками C++, Java ΠΈΠ»ΠΈ Pascal.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с индСксами Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива ΠΈΠΌΠ΅Π΅Ρ‚ индСкс 0, Π° послСдний β€” Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ индСксу Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ runtime-ΠΎΡˆΠΈΠ±ΠΊΡƒ, поэтому условиС Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ элСмСнта Π² спискС.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π²Ρ‹ удаляСтС элСмСнты ΠΈΠ· массива Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°, ΠΈΠ΄ΡƒΡ‰Π΅Π³ΠΎ ΠΎΡ‚ 0 Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°, индСксы ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… элСмСнтов ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ ΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ массиву строк ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΈΡ… Π² ΠΆΡƒΡ€Π½Π°Π» рСгистрации:

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

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 1");

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 2");

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 3");

Для Π‘Ρ‡ = 0 По ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 Π¦ΠΈΠΊΠ»

Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚ = ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ…[Π‘Ρ‡];

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ΡΡ: " + Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚);

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

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

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-счСтчик с понятным ΠΈΠΌΠ΅Π½Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Index ΠΈΠ»ΠΈ Counter), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ оставался Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ Π΄Π°ΠΆΠ΅ спустя Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΎΠ΄Π½ΠΎΠ±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ Π² слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ….

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ"

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

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° пСрСмСнная-ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ автоматичСски ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ индСксу, Ρ‡Ρ‚ΠΎ сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибок Ρ‚ΠΈΠΏΠ° "Off-by-one" (ошибка Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с массивами, Π½ΠΎ ΠΈ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ коллСкциями, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ интСрфСйс ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ списки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€Ρ‹ записСй.

  • πŸš€ Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ: Код выглядит Ρ‡ΠΈΡ‰Π΅ ΠΈ понятнСС, Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ взгляда.
  • πŸ›‘οΈ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ошибки Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ массива, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ.
  • βš™οΈ Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: Π•Π΄ΠΈΠ½Ρ‹ΠΉ синтаксис ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ особСнности доступа.

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

БписокВоваров = Новый БписокЗначСний;

БписокВоваров.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Ноутбук");

БписокВоваров.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠœΡ‹ΡˆΡŒ");

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π’ΠΎΠ²Π°Ρ€ Из БписокВоваров Π¦ΠΈΠΊΠ»

// ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ "Π’ΠΎΠ²Π°Ρ€" содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта

Если Π›Π΅Π²(Π’ΠΎΠ²Π°Ρ€, 1) = "Н" Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("НайдСно устройство Π½Π° Π±ΡƒΠΊΠ²Ρƒ Н: " + Π’ΠΎΠ²Π°Ρ€);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

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

πŸ“Š Какой Ρ†ΠΈΠΊΠ» Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
Для..По (с индСксом)
Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ..Из
Пока
Зависит ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ

ИспользованиС Ρ†ΠΈΠΊΠ»Π° "Пока" для условного ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°

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

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ВсСгда ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ пСрСмСнная, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Π² условии Ρ†ΠΈΠΊΠ»Π°, измСняСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°. БСсконСчный Ρ†ΠΈΠΊΠ» ΠΌΠΎΠΆΠ΅Ρ‚ "ΠΏΠΎΠ΄Π²Π΅ΡΠΈΡ‚ΡŒ" клиСнтскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ Π½Π° сСрвСрС 1Π‘.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поиска ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ числа Π² массивС с использованиСм Ρ†ΠΈΠΊΠ»Π° Пока:

МассивЧисСл = Новый Массив;

// Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива..

ИндСкс = 0;

НайдСно = Π›ΠΎΠΆΡŒ;

Пока ИндСкс < МассивЧисСл.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() И НЕ НайдСно Π¦ΠΈΠΊΠ»

Если МассивЧисСл[ИндСкс] % 2 = 0 Π’ΠΎΠ³Π΄Π°

НайдСно = Π˜ΡΡ‚ΠΈΠ½Π°;

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число: " + МассивЧисСл[ИндСкс]);

Π˜Π½Π°Ρ‡Π΅

ИндСкс = ИндСкс + 1;

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

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

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Помимо стандартных массивов Ρ‚ΠΈΠΏΠ° Array, Π² 1Π‘ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ спСциализированныС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ БписокЗначСний, Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. КаТдая ΠΈΠ· этих структур ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа. ПониманиС этих Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° стратСгии ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΈ избСТания логичСских ошибок ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ слоТных Π΄Π°Π½Π½Ρ‹Ρ….

НапримСр, БписокЗначСний Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сами значСния, Π½ΠΎ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свойства, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ прСдставлСниС, ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ° удалСния ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ списка Ρ‡Π΅Ρ€Π΅Π· Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° ЭлСмСнтБпискаЗначСний, Π° Π½Π΅ само Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ свойству Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого Ρ„Π°ΠΊΡ‚Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°, Π° Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ сравнСниС основных Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈ особСнностСй доступа ΠΊ ΠΈΡ… элСмСнтам ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅:

Π’ΠΈΠΏ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π§Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π˜Π·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ
Массив Π‘Π°ΠΌΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠŸΡ€ΡΠΌΠΎΠΉ доступ Высокая
БписокЗначСний ЭлСмСнтБпискаЗначСний Π§Π΅Ρ€Π΅Π· свойство.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ БрСдняя
Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π°Π±Π»ΠΈΡ†Ρ‹Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π§Π΅Ρ€Π΅Π· ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Π°Ρ
Π€ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ² Π‘Π°ΠΌΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠŸΡ€ΡΠΌΠΎΠΉ доступ Волько Ρ‡Ρ‚Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π’Π°Π±Π»ΠΈΡ†Π΅ΠΉΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ осущСствляСтся ΠΏΠΎ строкам. КаТдая строка Π²Π΅Π΄Π΅Ρ‚ сСбя ΠΊΠ°ΠΊ структура, Π³Π΄Π΅ доступ ΠΊ полям осущСствляСтся ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. Π­Ρ‚ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с курсорами Π² Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ΠΡŽΠ°Π½ΡΡ‹ Ѐиксированного Массива

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

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

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

Одной ΠΈΠ· частых ошибок являСтся ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ вычислСниС свойства ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() Π² условии Ρ†ΠΈΠΊΠ»Π°. Π₯отя соврСмСнный компилятор 1Π‘ часто ΠΊΡΡˆΠΈΡ€ΡƒΠ΅Ρ‚ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, явноС сохранСниС количСства элСмСнтов Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π° считаСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ отсутствиС Π»ΠΈΡˆΠ½ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ, Ссли свойство ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ являСтся вычисляСмым, Π° Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌ.

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

πŸ’‘

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ: ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°. ВыноситС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ тяТСлыС запросы Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

ЧастыС ошибки ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

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

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

  • βœ… ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ массив для ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, оставляя исходный Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌ.
  • πŸ”„ ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ…ΠΎΠ΄: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» Для Π‘Ρ‡ = Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ()-1 По 0 Π¦ΠΈΠΊΠ» для бСзопасного удалСния.
  • 🚫 Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ: Никогда Π½Π΅ мСняйтС Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ваТная ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° массива Π½Π° пустоту ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π₯отя Ρ†ΠΈΠΊΠ» просто Π½Π΅ выполнится Π½ΠΈ Ρ€Π°Π·Ρƒ, Ссли массив пуст, явная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π»ΠΈΡˆΠ½ΠΈΡ… вычислСний ΠΈΠ»ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ повСдСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, всСгда провСряйтС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… элСмСнтов, Ссли массив ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок привСдСния Ρ‚ΠΈΠΏΠΎΠ².

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘. ВсСгда тСстируйтС ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° Ρ‚ΠΎΠΉ вСрсии, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρƒ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°, особСнно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ конфигурациями.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° бСзопасности Ρ†ΠΈΠΊΠ»Π°

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

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

Как ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ массив Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС?

Для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° массива Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» Для с ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ счСтчиком. ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ β€” 0, Π° шаг β€” -1. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Для Π‘Ρ‡ = Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ()-1 По 0 Π¦ΠΈΠΊΠ». Π­Ρ‚ΠΎ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для бСзопасного удалСния элСмСнтов.

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ"?

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

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Массивом ΠΈ БпискомЗначСний ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅?

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅ Массива Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ нСпосрСдствСнно Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅ БпискаЗначСний Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΡƒ ЭлСмСнтБпискаЗначСний, содСрТащий само Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, прСдставлСниС ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ свойства. Для получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· списка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ свойству .Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли я добавлю элСмСнт Π² массив Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°?

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