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

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

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

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис ΠΈ инициализация ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

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

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ объявлСния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ пустой массив ΠΈΠ»ΠΈ сразу ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ количСство элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Если Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€, всС элСмСнты ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Π΅Ρ‚Π΅ объСм Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ фиксированного списка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

МойМассив = Новый ΠœΠ°ΡΡΠΈΠ²Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€(5);

// Или динамичСскоС созданиС

МойМассив = Новый ΠœΠ°ΡΡΠΈΠ²Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€;

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Массив структур являСтся ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ ссылочных Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ присваивании ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π½Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π° ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² памяти. ИзмСнСниС элСмСнта Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄Π½Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ отразится Π²ΠΎ всСх мСстах, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ эта ссылка.

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

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ элСмСнтами

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

Рассмотрим Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ сцСнарий формирования списка Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² для ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. ΠœΡ‹ создаСм Ρ†ΠΈΠΊΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ гСнСрируСтся новая структура с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Π΅.

БписокВоваров = Новый ΠœΠ°ΡΡΠΈΠ²Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€;

Для Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ = 1 По 10 Π¦ΠΈΠΊΠ»

НоваяБтрока = БписокВоваров.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ;

НоваяБтрока.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Имя","Π’ΠΎΠ²Π°Ρ€ β„–" + Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ);

НоваяБтрока.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Π¦Π΅Π½Π°", 100 * Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ);

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

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

  • πŸ“¦ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ для быстрого создания ΠΈ заполнСния"Π½Π° Π»Π΅Ρ‚Ρƒ".
  • πŸ”‘ ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠΉΡ‚Π΅ строковыС ΠΊΠ»ΡŽΡ‡ΠΈ для свойств, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ Π±Ρ‹Π» самодокумСнтируСмым.
  • πŸš€ Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ создания ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ссли структура Π½ΡƒΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°.

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

πŸ“Š Какой способ добавлСния Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
ΠœΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ с Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹
Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ· Π’Π°Π±Π»ΠΈΡ†Ρ‹Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ навигация ΠΏΠΎ массиву

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· массива структур осущСствляСтся прСимущСствСнно Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ» Для КаТдого. Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» автоматичСски ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ всС элСмСнты ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, прСдоставляя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, которая ссылаСтся Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ структуру. Π’Π°ΠΊΠΎΠΉ способ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния соврСмСнных стандартов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° 1Π‘.

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

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из БписокВоваров Π¦ΠΈΠΊΠ»

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Имя +":" + Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π¦Π΅Π½Π°);

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

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании Ρ†ΠΈΠΊΠ»Π° Для КаТдого пСрСмСнная ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° являСтся ссылкой. ИзмСнСниС свойств структуры Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² самом массивС. Если Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠšΠΎΠΏΠΈΡŽ структуры.

Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… часто сопровоТдаСтся ΠΈΡ… Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΈΠ»ΠΈ трансформациСй. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, массив структур Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ встроСнного ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠšΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ”Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π€ΠΈΠ»ΡŒΡ‚Ρ€ с языком запросов. Для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π°ΠΌ придСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ явныС Ρ†ΠΈΠΊΠ»Ρ‹ с условиями Если, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π½Π°Π±ΠΎΡ€Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

πŸ’‘

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

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ упорядочиваниС элСмСнтов

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

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ сортировки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π§Π°Ρ‰Π΅ всСго Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ сортировку Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ"ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°" ΠΈΠ»ΠΈ быстрой сортировки Π² ΠΊΠΎΠ΄Π΅, сравнивая ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ свойства структур. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ сортировку ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈΡ‡Π½ΡƒΡŽ сортировку (сначала ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ полю, ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€ΡƒΡ‡Π½ΠΎΠΉ сортировки ΠΏΠΎ свойству"Π¦Π΅Π½Π°" ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ:

Для ИндСкс1 = 0 По Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π° - 1 Π¦ΠΈΠΊΠ»

Для ИндСкс2 = ИндСкс1 + 1 По Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π° Π¦ΠΈΠΊΠ»

Если Массив[ИндСкс1].Π¦Π΅Π½Π° > Массив[ИндСкс2].Π¦Π΅Π½Π° Π’ΠΎΠ³Π΄Π°

Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ = Массив[ИндСкс1];

Массив[ИндСкс1] = Массив[ИндСкс2];

Массив[ИндСкс2] = Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ;

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

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

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

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

  • πŸ“‰ Ручная сортировка Π΄Π°Π΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ объСм ΠΊΠΎΠ΄Π°.
  • πŸ”„ ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ Π² Π’Π°Π±Π»ΠΈΡ†ΡƒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ сортировку, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ рСсурсов.
  • ⚑ Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов (Π΄ΠΎ 1000 элСмСнтов) ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€ΡƒΡ‡Π½ΠΎΠΉ сортировки ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠ°.

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

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅Ρ‚ встроСнной сортировки ΠΏΠΎ свойствам?

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

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

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

Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ встроСнного языка запросов. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ВЫБРАВЬ.. Π˜Π— Π’Π°Π±Π»ΠΈΡ†Π° прямо Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ΄Π° 1Π‘, Ρ‡Ρ‚ΠΎ нСвСроятно ΡƒΠ΄ΠΎΠ±Π½ΠΎ для слоТной Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ, Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ соСдинСния Π΄Π°Π½Π½Ρ‹Ρ…. Массив структур лишСн этой возмоТности"ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ", трСбуя написания Ρ†ΠΈΠΊΠ»ΠΎΠ² для Π»ΡŽΠ±Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ.

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

Π₯арактСристика Массив Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ Π’Π°Π±Π»ΠΈΡ†Π° Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ создания Высокая (Π½Π΅Ρ‚ описания ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ) БрСдняя (трСбуСтся описаниС структуры)
Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… Ручная (Ρ†ΠΈΠΊΠ»Ρ‹) Π―Π·Ρ‹ΠΊ запросов (быстро ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ)
Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ схСмы Высокая (Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ) Низкая (строгиС ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ)
ΠŸΠ°ΠΌΡΡ‚ΡŒ Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π½Π° элСмСнт ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ

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

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

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

πŸ’‘

Π—ΠΎΠ»ΠΎΡ‚ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: Если Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΡ‚Ρ€ΠΎΠ³ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ структуру ΠΈ Π½ΡƒΠΆΠ½Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ β€” Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’Π°Π±Π»ΠΈΡ†ΡƒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Если Π½ΡƒΠΆΠ½Π° Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π° с JSON ΠΈΠ»ΠΈ простая итСрация β€” Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠœΠ°ΡΡΠΈΠ²Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки

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

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

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

// ΠΠ΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Массив Π¦ΠΈΠΊΠ»

Если Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π¦Π΅Π½Π° * Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ > 1000 Π’ΠΎΠ³Π΄Π°

//..

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

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

// ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Массив Π¦ΠΈΠΊΠ»

Π‘ΡƒΠΌΠΌΠ° = Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π¦Π΅Π½Π° * Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ;

Если Π‘ΡƒΠΌΠΌΠ° > 1000 Π’ΠΎΠ³Π΄Π°

//..

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

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

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

  • ♻️ Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ†ΠΈΠΊΠ»Π°Ρ… Π±Π΅Π· нСобходимости.
  • πŸ›‘ НС измСняйтС Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Для КаТдого Π±Π΅Π· Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ понимания послСдствий.
  • πŸ’Ύ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… свойств.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ вашим конфигурациям Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ высокой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅. ВсСгда ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΡƒΡŽ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ.

β˜‘οΈ Π§Π΅ΠΊ-лист ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4
МоТно Π»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² массивС структур Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы?

Π”Π°, это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ…. Π’ качСствС значСния свойства структуры Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Массив ΠΈΠ»ΠΈ ΠœΠ°ΡΡΠΈΠ²Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€. Π­Ρ‚ΠΎ позволяСт ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ иСрархичСскиС Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌΠΈ.

Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ массив структур Π² JSON?

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒJSON. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ массив структур Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ ΠΎΠ½ автоматичСски сСриализуСтся Π² ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ JSON Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ структура ΠΈ массив ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ для сСриализации Π² 1Π‘.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Массив ΠΈ ΠœΠ°ΡΡΠΈΠ²Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€?

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

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ структуры?

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

Как Π½Π°ΠΉΡ‚ΠΈ структуру Π² массивС ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ свойства?

ВстроСнного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° поиска ΠΏΠΎ свойству Π½Π΅Ρ‚. НСобходимо ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» Для КаТдого с условиСм Если, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎΠ΅ свойство. Для ускорСния поиска Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.