Ieteicams, 2024

Redaktora Izvēle

Starpība starp viena dimensiju (1D) un divdimensiju (2D) bloku

Masīvs ir tādu mainīgo lielumu kopums, kas ir līdzīgi datu tipi, un tos apzīmē ar parasto nosaukumu. Konkrētu masīva elementu var piekļūt konkrēts šī masīva indekss. Java darbosies atšķirīgi, salīdzinot ar C + +. Mūsu diskusijas galvenais temats ir atšķirība starp vienu dimensiju un divdimensiju masīvu. Viendimensiju masīvs ir to mainīgo lielumu saraksts, kuriem ir tāds pats datu tips, savukārt divdimensiju masīvs ir "masīvu masīvs" ar līdzīgiem datu tipiem. C + + nav saistītu pārbaudi masīvos, bet Java ir stingra saistīto pārbaude masīvos.

Tāpēc sāksim ar atšķirībām starp vienu dimensiju un divdimensiju masīvu kopā ar salīdzinājuma diagrammu.

Salīdzināšanas diagramma:

Salīdzinājuma pamatsViendimensijuDivdimensiju
Pamata
Saglabājiet vienotu sarakstu ar līdzīga veida datiem.Saglabājiet "sarakstu sarakstu" vai "masīvu bloku" vai "vienas dimensijas masīvs".
Deklarācija/ * deklarācija C ++
ierakstiet mainīgo_nosaukumu [izmērs]; * /
/ * deklarācija Java
ierakstiet mainīgo_nosaukumu [];
mainīgais_nosaukums = jauns veids [lielums]; * /
/ * deklarācija C ++
tipa mainīgais_nosaukums [size1] [size2]; * /
/ * deklarācija Java
tipa mainīgais_nosaukums = jauns int [size1] [size2]; * /
Alternatīva deklarācija/ * Java
int [] a = jauns int [10]; * /
/ * Java
int [] [] a = jauns int [10] [20]; * /
Kopējais lielums BytosKopējie biti = izmērs (masīva mainīgā datu tips) * masīva izmērs.Kopējie biti = izmērs (masas mainīgā datu tips) * pirmā indeksa * lieluma otrā indeksa lielums.
Saņemšanas parametrsTo var saņemt rādītājā, izmēra masīvā vai nesagrieztā masīvā.Parametram, kas to saņem, jādefinē masīva labākais izmērs.
IzmēriViens izmērs.Divdimensiju.

Viendimensiju diagrammas definīcija (1-D masīvs)

Viendimensiju vai viena dimensijas masīvs tiek uzskatīts par “līdzīgu datu tipu mainīgo sarakstu”, un katru mainīgo var skaidri piekļūt, norādot tā indeksu kvadrātiekavās, pirms kura ir šī masīva nosaukums.

C + +, masas mainīgā lieluma deklarācija ir pietiekama, lai piešķirtu atmiņā vietu tiem. Java programmā tas tiek sasniegts divos posmos. Pirmkārt, jums ir jādeklarē vēlamā tipa mainīgais. Otrkārt, jums ir jāpiešķir atmiņa, lai saglabātu masīvu, izmantojot “jauno” un piešķirot to deklarētajam masīva mainīgajam. Tādējādi masīvi tiek dinamiski piešķirti Java.

Apspriedīsim C ++ kontekstā

 // deklarācija C + + tipa mainīgajā nosaukumā [lielums]; 

Šeit tips deklarē masīva mainīgā datu tipu, un izmērs nosaka to elementu skaitu, kurus masīvs saglabās.

Piemēram, ja mēs vēlamies pasludināt masīvu, kas satur katra mēneša atlikumu.

 // piemērs int month_balance [12]; 

Mēneša bilance ir masīva mainīgais, kuram būs 12 veseli skaitļi, kas atspoguļo katra mēneša atlikumu. Tagad, ja mēs vēlamies piekļūt "aprīļa" mēneša bilancei, mums vienkārši bija jāmin mainīgais nosaukums, kam seko kvadrātiekavs, kas satur aprīļa mēneša indeksa vērtību, ti, "month_balance [3]". Bet, tā kā “aprīlis” ir gada ceturtais mēnesis, bet mēs minējām “[3]”, jo visiem masīviem ir 0 kā pirmā elementa indekss.

Java sistēmā to var izdarīt kā

 // deklarācija Java tipa mainīgajā nosaukumā []; mainīgais_nosaukums = jauns veids [lielums]; 

Sākumā mēs sākotnēji paziņojām par masīva mainīgo ar savu tipu, un pēc tam mēs tam piešķīrām atmiņu, izmantojot 'new' un piešķirot 'new' deklarētajam masīva mainīgajam. Pieņemsim iepriekš minēto piemēru, ja mēs vēlamies pasludināt masīvu, kurā būs iekļauts atlikums katrā gada mēnesī.

 // piemērs int month_balance []; month_balance = new int [12]; 

Šeit "jauns" piešķir atmiņu masīva mainīgajam "month_balance", tāpēc tagad mont_balance tagad saglabās atmiņu par 12 veseliem skaitļiem.

Rīkojumus var inicializēt, kad tie ir deklarēti. Masīva inicializators ir ar komatu atdalītu vērtību saraksts, ko ieskauj cirtaini bikšturi.
//piemērs

 int month_balance = {100, 500, 200, 750, 850, 250, 630, 248, 790, 360, 450, 180}; 

Divdimensiju diagrammas definīcija (2-D masīvs)

Gan C ++, gan Java atbalsta daudzdimensiju masīvu. Viens no vienkāršākajiem daudzdimensiju masīvu veidiem ir divdimensiju masīvs vai 2-D masīvs. Divdimensiju masīvu var uzskatīt par "masīvu bloku" vai "viena dimensiju bloku masīvu". Lai deklarētu divdimensiju masīvu mainīgo, mums ir jānorāda masīva nosaukums, kam seko divas kvadrātiekavas, kur otrais indekss ir otrais kvadrātiekavu komplekts.

Divdimensiju masīvs tiek saglabāts rindu kolonnas matricas formā, kur pirmais indekss norāda rindu un otro indeksu norāda kolonnu. Otrs vai labākais matricas indekss ļoti strauji mainās, salīdzinot ar pirmo vai kreiso indeksu, vienlaikus piekļūstot masīva elementiem.

C + + divdimensiju masīvs tiek deklarēts kā;

 // deklarācija C + + tipa mainīgajā nosaukumā [size1] [size2]; 

Piemēram, mēs vēlamies saglabāt atlikumu ik pēc 30 dienām katrā mēneša mēnesī 2-D masīvā.

 // piemērs int month_balance [12] [30]; 

Java sistēmā divdimensiju masīvs tiek iegūts ar

 // deklarācija Java tipa mainīgajā_name = new int [size1] [size2]; // piemērs int month_balance = new int [12] [30]; 

Tā kā mēs nevaram nodot visu masīvu kā parametru funkcijai, tiek nodots rādītājs uz masīva pirmo elementu. Ar argumentu, kas saņem divdimensiju masīvu, ir jādefinē, ka tā ir pareizā dimensija. Labākais izmērs ir vajadzīgs, jo kompilatoram tas ir vajadzīgs, lai apstiprinātu katras rindas garumu, ja tā vēlas indeksēt masīvu pareizi. Ja labākais rādītājs nav minēts, kompilators nevar noteikt, kur sākas nākamā rinda.

 // piemērs Java void receptioning_funct (int a [] [10]) {. . . } 

Ja atmiņa tiek dinamiski iedalīta divdimensiju masīvam Java, tiek norādīts kreisais rādītājs, un atlikušos izmērus var piešķirt atsevišķi, ti, visas masīva rindas var nebūt vienāda lieluma.

 // piemērs Java int month_balance = new int [12] []; month_balance [0] = new int [31]; month_balance [1] = new int [28]; month_balance [2] = new int [31]; month_balance [3] = new int [30]; month_balance [4] = new int [31]; month_balance [5] = new int [30]; month_balance [6] = new int [31]; month_balance [7] = new int [30]; month_balance [8] = jauns int [31]; month_balance [9] = new int [30]; month_balance [10] = new int [31]; month_balance [11] = jauns int [30]; month_balance [12] = jauns int [31]; 

Taču nav nekādu priekšrocību.

Galvenās atšķirības starp vienu dimensiju un divdimensiju struktūru

  1. Viendimensiju masīvs ir saraksts, kura elementi ir līdzīgi datu tipam. No otras puses, divdimensiju masīvs ir saraksts, kura elementi ir līdzīga datu veida masīvs.
  2. C + +, kad vienadimensiju masīvs tiek saņemts ar uztveres funkcijas parametru, nav nepieciešams pieminēt masīva lielumu, jo kompilators saprot, ka tipa masīvs (minētais datu tips kopā ar parametru) ar zināmu garumu ir jāsaņem. Divdimensiju masīvā jānorāda otrais vai labākais visvairāk indekss, jo kompilatoram ir jāzina, kur sākas viena rindas beigas un jauna rinda.
  3. C + + viendimensiju masīvs tiek saglabāts blakus esošajā atmiņas vietā indeksētā secībā, turpretim divdimensiju masīvs tiek saglabāts arī blakus esošajā atmiņas vietā, bet, tā kā divdimensiju masīvā ir vairākas rindiņas, pirmajā rindā seko otrais un trešais un tā tālāk.

Piezīme:

Gan viena, gan divdimensiju masīva, gan divdimensiju masīva nodošana funkcijai ir līdzīga, ti, abi tiek nodoti tikai pēc masīva nosaukuma

 // piemērs pass_funt (name_of_array); 

Secinājums:

Gan viena, gan divdimensiju masīvā indeksam ir ļoti svarīga loma, jo tā ir vienīgā lieta, kas konkrēti identificē masīva elementu. Gan vienu dimensiju, gan divdimensiju masīvu var inicializēt deklarācijas brīdī.

Top