Rustvektorer

Rustvektorer
En vektor er ganske enkelt en omstilt matrise. De er som skiver i den forstand at størrelsen er ukjent på kompilertid. Imidlertid kan de vokse eller krympe til enhver bestemmelig størrelse.

Velkommen andre rustaceans til denne artikkelen. For denne vil vi diskutere hvordan vi skal jobbe med vektorer i rustprogrammeringsspråket.

Rust skap ny vektor

Det er to primære metoder for å lage en vektor i rust.

Den første er å lage en ny forekomst av vektorstrukturen ved hjelp av den nye () metoden. Syntaksen er som vist nedenfor:

La VEC_NAME: VEC = Vec :: new ();

Merk at vi spesifiserer vektortypen inne i et par vinkelbraketter.

Et eksempel på en vektor er vist nedenfor:

fn main ()
La VECT: VEC = Vec :: new ();

Ovennevnte eksempler skaper en ny tom vektor av 32-bits signerte heltall.

Den andre metoden for å lage en vektor er å bruke VEC! Makro. Dette er en innebygd makro som lar deg erklære og initialisere en ny vektor.

Syntaksen er som vist nedenfor:

La VEC_NAME = VEC![Vector_Values];

I dette formatet trenger vi ikke å kommentere vektortypen. Kompilatoren vil utlede typen basert på verdiene som er lagret i vektoren.

Et eksempel er som vist:

fn main ()
La VEC = VEC![1,2,3,4,5];

Tilgang til vektorverdier

Vi kan få tilgang til verdiene til en vektor ved hjelp av to metoder.

Den første er å bruke indeksnotasjonen. For å bruke indeksnotasjonen, starter vi med vektnavnet og indeksen for verdien vi ønsker å få tilgang til i firkantede parenteser.

MERK: Vektorindeksering starter ved indeks 0. Derfor er den første verdien i vektoren ved indeks 0.

Et eksempel er som vist:

fn main ()
La VEC = VEC![1,2,3,4,5];
Println!("", vec [0]);

Koden over skal returnere elementet ved indeks 0. I dette tilfellet skal det returnere 1.

Selv om tilgang til vektorelementer etter indeksen er egnet for småbruk, gir den et problem hvis vi får tilgang til en utenfor-bundet indeks.

Ta eksempelvektoren nedenfor:

La VEC = VEC![1,2,3,4,5];

Det siste elementet er på indeks 4. Hvis vi prøver å få tilgang til en indeks over 4, vil programmet få panikk og avslutte. Et eksempel er som vist:

fn main ()
La VEC = VEC![1,2,3,4,5];
Println!("", vec [5]);

Koden over vil returnere en feil som:

Vi kan overvinne dette ved å bruke get () -metoden. Denne metoden tar indeksen vi ønsker å få tilgang til og returnerer den tilhørende verdien.

fn main ()
La VEC = VEC![1,2,3,4,5];
Println!(":? ", VEC.få (0));

I eksemplet ovenfor returnerer funksjonen en verdi ved å bruke alternativet Enum. Sjekk Enum -dokumentasjonen for å lære mer.

I motsetning til den firkantede brakettnotasjonen, returnerer denne funksjonen ingen hvis indeksen ikke blir funnet i stedet for å få panikk.

fn main ()
La VEC = VEC![1,2,3,4,5];
Println!(":? ", VEC.få (5));

Siden indeksen for matrisen ikke eksisterer, returnerer funksjonen ingen som vist nedenfor:

Iterere over en vektor

Vi kan enkelt iterere over indeksen og elementene i en vektor ved hjelp av ITER -metoden. Et eksempel er som vist nedenfor:

fn main ()
La VEC = VEC![1,2,3,4,5];
// println!(":? ", VEC.få (5));
for jeg i vec.iter ()
Println!("", Jeg);

Vi kan også oppregne vektoren ved hjelp av enumeratmetoden. Dette returnerer indeksen og verdien som nedenfor:

fn main ()
La VEC = VEC![1,2,3,4,5];
for (indeks, verdi) i VEC.iter ().enumerate ()
Println!("Indeks: , verdi: ", indeks, verdi);

Koden over skal returnere utdataene som:

Indeks: 0, verdi: 1
Indeks: 1, verdi: 2
Indeks: 2, verdi: 3
Indeks: 3, verdi: 4
Indeks: 4, verdi: 5

Legg til og fjern vektorelementer

Rust lar oss legge til eller fjerne elementer fra en vektor ved hjelp av push- og popmetodene. Dette legger til og fjerner et spesifisert element til henholdsvis og fra vektorstabelen.

Eksemplet nedenfor viser hvordan du legger til et element i en vektor.

fn main ()
La mut vec = vec![1,2,3,4,5];
Vec.Push (6);
Println!(":? ", vec);

Dette skriver ut en vektor som:

[1, 2, 3, 4, 5, 6]

For å fjerne et element fra vektorstabelen, bruk POP -metoden som vist:

fn main ()
La mut vec = vec![1,2,3,4,5];
Vec.pop ();
Println!(":? ", vec);

Dette skal fjerne den spesifiserte verdien fra vektoren og returnere:

[1, 2, 3, 4]

MERK: Vektoren må være mutable for push- eller popoperasjoner.

Finn verdi i vektor

Du kan finne om en vektor inneholder en verdi ved hjelp av contactions () -metoden. Et eksempel er som vist:

fn main ()
La mut vec = vec![1,2,3,4,5];
Hvis VEC.inneholder (& 5)
Println!("funnet!")
annet
Println!("ikke funnet!");

Contains () -metoden sjekker hvis en verdi er i vektoren og returnerer en boolsk verdi.

I Avslutning

Denne artikkelen beskriver vektorer, hvordan du oppretter og utfører forskjellige operasjoner på dem. Du kan sjekke rustdokumentasjonen for å lære mer.

Takk for at du leste!