Programmering

Hvordan jobbe med takkede matriser i C #

En matrise kan defineres som en sekvensiell samling av elementer av samme datatype. Elementene i en matrise er lagret på sammenhengende minneplasseringer. Arrays kan være enkelt- eller flerdimensjonale. En tagget matrise er en spesiell type av et flerdimensjonalt array der hver av matrisen (en tagget matrise faktisk er en matrise av matriser) kan ha varierende størrelse.

Du kan ha takkede matriser på hvilket som helst dataspråk som gir støtte for matriser. En tagget matrise (også kjent som en fillete matrise) er en rekke matriser der medlemsarrayene i sin tur kan ha forskjellige dimensjoner og størrelser. Du kan implementere flerdimensjonale matriser er takkede matriser for å forbedre ytelsen.

Komme i gang med takkede arrays i C #

I denne delen vil vi undersøke hvordan du kan erklære, initialisere og få tilgang til takkede matriser. Som vi vet består en takket rekke av en rekke matriser av like eller forskjellige størrelser. Med andre ord, i en tagget matrise er antall rader fast, men antall kolonner kan variere. Når du erklærer en takket matrise, kan du bare deklarere antall rader i matrisen og foretrekker å spesifisere antall kolonner ved kjøretid.

Gi oss beskjed om å forstå alt vi har lært så langt på ujevne matriser med noen få kodeeksempler. Tenk på følgende matrise.

streng [] [] str = ny streng [5] [];

Du har erklært radene i matrisen. Det er 5 rader i denne matrisen som i sin tur kan inneholde 5 strengarrayer av forskjellige lengder. La oss nå se hvordan vi kan erklære fem matriser i matrisen som heter str, hver med forskjellige lengder. Følgende kodebit illustrerer hvordan dette kan oppnås.

str [0] = ny streng [5];

str [1] = ny streng [10];

str [2] = ny streng [20];

str [3] = ny streng [50];

str [4] = ny streng [10];

Du kan nå lagre strenger av ulik lengde i den takkede matrisen som vist i kodebiten nedenfor.

str [0] [0] = "Pune";

str [1] [0] = "Kolkata";

str [2] [0] = "Bangalore";

str [3] [0] = "Den rosa byen som heter Jaipur";

str [4] [0] = "Hyderabad";

Her er den komplette kodelisten som illustrerer hvordan du kan erklære en takket matrise, lagre data og deretter hente og vise dem i konsollen.

public static void Main (streng [] args)

       {

// Erklær først den takkede matrisen

streng [] [] str = ny streng [5] [];

str [0] = ny streng [5];

str [1] = ny streng [10];

str [2] = ny streng [20];

str [3] = ny streng [50];

str [4] = ny streng [10];

// Lagre nå data i den takkede matrisen

str [0] [0] = "Pune";

str [1] [0] = "Kolkata";

str [2] [0] = "Bangalore";

str [3] [0] = "Den rosa byen som heter Jaipur";

str [4] [0] = "Hyderabad";

// Til slutt, vis innholdet til hver av strengene i den takkede matrisen

for (int i = 0; i <5; i ++)

Console.WriteLine (str [i] [0]);

Console.Read ();

       }

Som du kan se i programmet ovenfor, er antall rader i den takkede matrisen fast, men antall kolonner varierer. Dette eksemplet representerer en todimensjonal takket matrise. Hvis du skulle bruke en normal todimensjonal matrise, måtte du forbruke 5 x 50, dvs. 250 byte. Årsaken er at du må ha plass på 50 byte i hver av matriser i den takkede matrisen for å imøtekomme den største strengen. I dette eksemplet er den største strengen av størrelse 50. Tvert imot, når du bruker en tagget matrise, ender du opp med å forbruke bare 95 byte! Interessant, ikke sant?

Når du kjører programmet ovenfor, vises strengene som er lagret i den takkede matrisen i konsollvinduet.

Et annet eksempel - et takket utvalg av heltall

I likhet med hvordan vi har opprettet takkede strenger, kan du også opprette takkede mengder av heltall. Faktisk kan du ha en takket rekke av hvilken som helst datatype. Slik kan du erklære en takket rekke i C #.

int [] [] numbersArray;

Følgende kodebit illustrerer hvordan du kan deklarere et heltall tagget array, dvs. et tagget array som i sin tur kan lagre matriser med heltall av varierende elementer.

int [] [] numbersArray = new int [5] [];

for (int i = 0; i <numbersArray.Length; i ++)

   {

numbersArray [i] = new int [10 * (i + 1)];

   }

Ovennevnte kodebit oppretter et heltal, takket matrise med navn numbersArray som igjen inneholder heltallmatriser av varierende størrelse.

$config[zx-auto] not found$config[zx-overlay] not found