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

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

ΠœΡ‹ рассмотрим Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис, Π½ΠΎ ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вторая способна ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

ΠžΡΠ½ΠΎΠ²Ρ‹ возвращСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ 1Π‘

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² языкС 1Π‘ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ массив, ваша ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ объявлСна ΠΊΠ°ΠΊ Ѐункция, Π° Π½Π΅ ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Массив, наполняСтС Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ возвращаСтся.

БинтаксичСски это выглядит ΠΊΠ°ΠΊ присваиваниС ΠΈΠΌΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ строку Π˜ΠΌΡΠ€ΡƒΠ½ΠΊΡ†ΠΈΠΈ = Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ†Π΅ Π±Π»ΠΎΠΊΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°. Если Π²Ρ‹ Π·Π°Π±ΡƒΠ΄Π΅Ρ‚Π΅ эту строку, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкам ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнтам ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Рассмотрим ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ список чисСл. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ встроСнный Ρ‚ΠΈΠΏ Массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся динамичСским ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ любого Ρ‚ΠΈΠΏΠ°.

Ѐункция ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ§ΠΈΡΠ»ΠΎΠ²ΠΎΠΉΠœΠ°ΡΡΠΈΠ²()

ΠœΠ°ΡΡΠΈΠ²Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Новый Массив;

ΠœΠ°ΡΡΠΈΠ²Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(10);

ΠœΠ°ΡΡΠΈΠ²Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(20);

ΠœΠ°ΡΡΠΈΠ²Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(30);

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠœΠ°ΡΡΠΈΠ²Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚; // Или: ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ§ΠΈΡΠ»ΠΎΠ²ΠΎΠΉΠœΠ°ΡΡΠΈΠ² = ΠœΠ°ΡΡΠΈΠ²Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ использованиС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ являСтся Π±ΠΎΠ»Π΅Π΅ соврСмСнным ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ способом Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, хотя старая схСма присваивания ΠΈΠΌΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚ΠΎΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π“Π»Π°Π²Π½ΠΎΠ΅ β€” ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создан Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°.

πŸ’‘

ВсСгда ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ массива ΠΏΠ΅Ρ€Π΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ элСмСнтов. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ "Бвойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ".

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

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

Часто трСбуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π½Π΅ просто ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ значСния, Π° слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. НапримСр, массив структур, Π³Π΄Π΅ каТдая структура описываСт Ρ‚ΠΎΠ²Π°Ρ€. Π­Ρ‚ΠΎ позволяСт ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ связанныС Π΄Π°Π½Π½Ρ‹Π΅ (НаимСнованиС, Артикул, Π¦Π΅Π½Π°) Π² ΠΎΠ΄Π½Ρƒ ячСйку ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

  • πŸ“¦ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() для помСщСния элСмСнта Π² ΠΊΠΎΠ½Π΅Ρ† массива.
  • πŸ”’ Для доступа ΠΊ элСмСнту ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Массив[0].
  • πŸ”„ Π¦ΠΈΠΊΠ» Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ массива.
  • 🧹 НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ массивы, Ссли ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰ΠΈΡ… сСансах.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΡƒΠ·ΠΊΠΈΠΌ мСстом. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ массива Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΅Π³ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΏΠΎ ссылкС (Ρ‡Ρ‚ΠΎ происходит автоматичСски для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²) являСтся эффСктивным способом ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· лишнСго копирования памяти.

πŸ“Š Какой способ наполнСния массива Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π¦ΠΈΠΊΠ»ΠΎΠΌ ΠΈΠ· запроса
Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту
Π§Π΅Ρ€Π΅Π· Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Π Π°Π±ΠΎΡ‚Π° со слоТными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠΌ массивС

ВозмоТности ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ массивы Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°, создавая ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ структуры. Π₯отя явной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΠΊΠ°ΠΊ Π² C++ здСсь Π½Π΅Ρ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…, помСщая ΠΎΠ΄ΠΈΠ½ массив Π² ячСйку Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для прСдставлСния иСрархичСских Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, справочников с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ.

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

Π’ΠΈΠΏ элСмСнта ОписаниС ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования
ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ (Число, Π‘Ρ‚Ρ€ΠΎΠΊΠ°) Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ значСния Бписок ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Набор ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… свойств ΠšΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° сотрудника (ЀИО, Π”ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ)
Массив ВлоТСнная коллСкция Бписок Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π² Π·Π°ΠΊΠ°Π·Π΅
БоотвСтствиС ΠŸΠ°Ρ€Ρ‹ ΠšΠ»ΡŽΡ‡-Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ Π²Π°Π»ΡŽΡ‚ ΠΈ ΠΈΡ… курсов

ИспользованиС Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ Π²Π½ΡƒΡ‚Ρ€ΠΈ массива являСтся стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ самодокумСнтируСмым, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊ полям структуры ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ, Π° Π½Π΅ ΠΏΠΎ индСксам.

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

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ пустых Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли функция Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ массив, Π½ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… для Π΅Π³ΠΎ заполнСния Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ? Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ НСопрСдСлСно β€” плохая ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это заставит Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ постоянно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния ΠΏΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΠΊΠ»ΠΎΠΌ. Π“ΠΎΡ€Π°Π·Π΄ΠΎ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅ всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Массив, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ пуст.

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

Если Π² процСссС выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π² доступа), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ хотя Π±Ρ‹ пустой ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ошибки.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ стоит Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ НСопрСдСлСно?

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ НСопрСдСлСно Π»ΠΎΠΌΠ°Π΅Ρ‚ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ сразу ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ†ΠΈΠΊΠ»Π΅ "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ", ΠΊΠΎΠ΄ ΡƒΠΏΠ°Π΄Π΅Ρ‚ с ошибкой, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ НСопрСдСлСно Π½Π΅ являСтся ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ. Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ пустого массива сохраняСт Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠΈ.

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

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

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

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

πŸ’‘

Для максимальной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… рассмотритС использованиС Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ вмСсто Массива, Ссли Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π’Π°Π±Π»ΠΈΡ†Π° Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° для хранСния Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… массивов

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

Ѐункция ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ”ΠΎΠ»ΠΆΠ½ΠΈΠΊΠΎΠ²()

ΠœΠ°ΡΡΠΈΠ²Π”ΠΎΠ»ΠΆΠ½ΠΈΠΊΠΈ = Новый Массив;

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

Запрос.ВСкст = "ВЫБРАВЬ ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹.Бсылка, ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹.НаимСнованиС Π˜Π— Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹ КАК ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹";

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

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ();

Пока Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ() Π¦ΠΈΠΊΠ»

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π”ΠΎΠ»ΠΆΠ½ΠΈΠΊΠ° = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°;

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π”ΠΎΠ»ΠΆΠ½ΠΈΠΊΠ°.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Бсылка", Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Бсылка);

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π”ΠΎΠ»ΠΆΠ½ΠΈΠΊΠ°.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("НаимСнованиС", Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.НаимСнованиС);

ΠœΠ°ΡΡΠΈΠ²Π”ΠΎΠ»ΠΆΠ½ΠΈΠΊΠΈ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π”ΠΎΠ»ΠΆΠ½ΠΈΠΊΠ°);

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠœΠ°ΡΡΠΈΠ²Π”ΠΎΠ»ΠΆΠ½ΠΈΠΊΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈΡ… отобраТСния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ”ΠΎΠ»ΠΆΠ½ΠΈΠΊΠΎΠ² ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… мСст ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π½Π΅ дублируя ΠΊΠΎΠ΄ запроса. Π­Ρ‚ΠΎ соотвСтствуСт ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ СдинствСнной отвСтствСнности.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ распространСнный кСйс β€” Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. Ѐункция собираСт значСния ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, провСряСт ΠΈΡ… Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ пСрСдаСтся Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹.

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

β˜‘οΈ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ качСства Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° массива

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

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

МоТно Π»ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ 1Π‘?

Π”Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив, элСмСнтами ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы. Для этого создайтС внСшний массив ΠΈ добавляйтС Π² Π½Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹Π΅ экзСмпляры Новый Массив. Доступ ΠΊ элСмСнтам Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Массив[0][1].

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ Массива ΠΈ Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?

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

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ?

Если ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ отсутствуСт ΠΈΠ»ΠΈ функция Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Π±Π΅Π· явного Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° значСния, ΠΎΠ½Π° Π²Π΅Ρ€Π½Π΅Ρ‚ НСопрСдСлСно. Π­Ρ‚ΠΎ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам выполнСния ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ массив ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ, Ссли ΠΎΠ½ использовался Ρ€Π°Π½Π΅Π΅?

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ массива для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… вычислСний, ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΎΠ²Ρ‹ΠΌ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Массив.ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ(). Π­Ρ‚ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ всС элСмСнты, Π½ΠΎ сохранит сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ массива Π² памяти.

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ элСмСнты массива послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ функция Π΅Π³ΠΎ Π²Π΅Ρ€Π½ΡƒΠ»Π°?

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