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

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

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

ВСорСтичСскиС основы ΠΈ объявлСниС структуры

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ написанию ΠΊΠΎΠ΄Π°, Π²Π°ΠΆΠ½ΠΎ ΠΎΡΠΎΠ·Π½Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΡƒΡŽ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ массивом Π² 1Π‘ ΠΈ классичСскими ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ Π² Ρ‚Π°ΠΊΠΈΡ… языках, ΠΊΠ°ΠΊ C++ ΠΈΠ»ΠΈ Pascal. Π’ 1Π‘ Π½Π΅Ρ‚ ТСсткой привязки ΠΊ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’Ρ‹ создаСтС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Для создания Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΉ структуры Π½Π°ΠΌ потрСбуСтся Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ: внСшний массив Ρ…Ρ€Π°Π½ΠΈΡ‚ ссылки Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ массивы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, хранят ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ 1Π‘ индСксация массивов начинаСтся с нуля, Π° Π½Π΅ с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту с индСксом 1 Π² пустом массивС ΠΈΠ»ΠΈ массивС с ΠΎΠ΄Π½ΠΈΠΌ элСмСнтом ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС "ИндСкс Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°".

Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ структуры опрСдСляСтся динамичСски. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив ΠΈΠ· 10 строк, Π³Π΄Π΅ пСрвая строка Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ 5 столбцов, Π° вторая β€” 100 столбцов. Вакая "рваная" структура (jagged array) Π²ΠΏΠΎΠ»Π½Π΅ допустима ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для спСцифичСских Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² сТатия Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ.

πŸ“Š Какой способ объявлСния массивов Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π―Π²Π½ΠΎΠ΅ объявлСниС Ρ‡Π΅Ρ€Π΅Π· Новый Массив
ДинамичСскоС созданиС Π² Ρ†ΠΈΠΊΠ»Π΅
ИспользованиС Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями

Алгоритм создания ΠΈ инициализация ячССк

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

Рассмотрим классичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ 3x3. ΠœΡ‹ создаСм внСшний массив Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3. Π”Π°Π»Π΅Π΅ запускаСм Ρ†ΠΈΠΊΠ» ΠΎΡ‚ 0 Π΄ΠΎ 2. На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΌΡ‹ присваиваСм Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ элСмСнту внСшнСго массива Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Массив Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ полноцСнная сСтка, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ Массив[Π‘Ρ‚Ρ€ΠΎΠΊΠ°][Колонка].

Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ² = Новый Массив(3);

Для Π‘Ρ‡ = 0 По 2 Π¦ΠΈΠΊΠ»

Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ²[Π‘Ρ‡] = Новый Массив(3);

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

Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ²[0][0] = 100;

Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ²[1][2] = "ВСкст";

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ структуру Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ²[0][0] Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ массива Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 0, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° выдаст ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ частая ошибка Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΊ автоматичСскому Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ массивов Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдах.

β˜‘οΈ Алгоритм создания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

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

Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ

ПослС создания каркаса структуры наступаСт этап наполнСния Π΅Ρ‘ смысловой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. Для этого Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Ρ†ΠΈΠΊΠ» ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ строк (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности), Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ β€” Π·Π° ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ столбцов (Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ). Вакая конструкция позволяСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ всСй ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅, заполняя ΠΈΠ»ΠΈ считывая значСния.

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

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

πŸ’‘

Для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими массивами ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСство ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ свойствам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π°. ВынСситС вычислСния, Π½Π΅ зависящиС ΠΎΡ‚ индСкса ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, Π²ΠΎ внСшний Ρ†ΠΈΠΊΠ».

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ с Π’Π°Π±Π»ΠΈΡ†Π΅ΠΉ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Часто ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ встаСт Π²Ρ‹Π±ΠΎΡ€: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Оба инструмСнта ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² памяти, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρƒ ΠΈ сфСру примСнСния. ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈ Π² ΠΏΠ»Π°Π½Π΅ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ строки, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π’Π°Π±Π»ΠΈΡ†Π° Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ строгой схСмы ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ.

Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство массива β€” ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ создания ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΠΈΡ… Ρ‚ΠΈΠΏΡ‹ ΠΈ Π΄Π»ΠΈΠ½Ρƒ. Однако отсутствиС схСмы услоТняСт Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ: Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π»Π΅ΠΆΠΈΡ‚ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ с индСксом 2. Π’ Π’Π°Π±Π»ΠΈΡ†Π΅ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰Π°Ρ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ инструмСнт для вашСй Π·Π°Π΄Π°Ρ‡ΠΈ:

Π₯арактСристика Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Массив Π’Π°Π±Π»ΠΈΡ†Π° Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
ОписаниС структуры НС трСбуСтся (динамичСская) ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ (Колонки, Π’ΠΈΠΏΡ‹)
ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ По числовому индСксу [0][1] По ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ["Имя"]
Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ² Π² строкС Полная (любой Ρ‚ΠΈΠΏ Π² любой ячСйкС) ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Ρ‚ΠΈΠΏΠΎΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ
ВстроСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Π΅) ΠœΠΎΡ‰Π½Ρ‹Π΅ (Поиск, Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°, Π€ΠΈΠ»ΡŒΡ‚Ρ€)

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

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠΎΠ΄Π°

НаиболСС распространСнной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами являСтся ошибка "ИндСкс Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°". Она Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² Π΄Π²ΡƒΡ… случаях: Π»ΠΈΠ±ΠΎ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 11-ΠΌΡƒ элСмСнту Π² массивС ΠΈΠ· 10), Π»ΠΈΠ±ΠΎ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ индСкс для элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Ρ‰Π΅ Π½Π΅ являСтся массивом.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ массивов ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ присваиваниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ИзмСнСниС Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠΏΠΈΠΈ Π·Π°Ρ‚Ρ€ΠΎΠ½Π΅Ρ‚ ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π». Для создания нСзависимой ΠΊΠΎΠΏΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Массив.Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ().

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

Π‘Π΅ΠΊΡ€Π΅Ρ‚ быстрой ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ToString() ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΆΡƒΡ€Π½Π°Π» рСгистрации для сСриализации Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ быстро ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ содСрТимоС структуры Π±Π΅Π· пошагового прохоТдСния ΠΏΠΎ всСм индСксам Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

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

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

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с фиксированными размСрностями, рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π€ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ² для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, Ссли структура Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ послС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ случайного измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² строк Π² процСссС выполнСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

πŸ’‘

Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Π² 1Π‘ β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ строгого контроля ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ для избСТания ошибок выполнСния.

МоТно Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² 1Π‘?

Π”Π°, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ влоТСнности. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив, элСмСнтами ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы. Бинтаксис обращСния Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Массив[X][Y][Z]. Однако ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° становится Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТнСС.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив?

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() удаляСт всС элСмСнты ΠΈΠ· массива, Π½ΠΎ Π½Π΅ удаляСт сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ сброса структуры достаточно Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ для внСшнСго массива. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ массивы ΠΏΡ€ΠΈ этом Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½Ρ‹ сборщиком мусора, Ссли Π½Π° Π½ΠΈΡ… Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ссылок.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Массив ΠΈ Π’Π°Π±Π»ΠΈΡ†Π° Π² 1Π‘?

Массив β€” это коллСкция элСмСнтов, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ осущСствляСтся ΠΏΠΎ числовому индСксу. Π’Π°Π±Π»ΠΈΡ†Π° (Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ) β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ спСцифичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ поиск ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ ΠΈ сортировка.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка ΠΏΡ€ΠΈ присваивании значСния?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Ρ‰Π΅ Π½Π΅ создан. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ строкой Массив[i][j] = Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° инициализация Массив[i] = Новый Массив().