Hva er en C ++ -vektor?
En C ++ VECTOR er en dynamisk matrise som kan endre størrelsen på seg selv automatisk. Endring av størrelse skjer etter at et element er lagt til eller slettet fra vektoren. Lagringen håndteres automatisk av containeren. Elementene i en vektor lagres i sammenhengende lagring. Dette lar C ++ programmerere få tilgang til og krysse vektorelementene ved hjelp av iteratorer.
Innsettingen av nye data til en vektor gjøres på slutten. Dette tar differensiell tid. Fjerningen av et element fra en vektor tar konstant tid. Årsaken er at det ikke er behov for å endre størrelse på vektoren. Innsetting eller sletting av et element i begynnelsen av vektoren tar lineær tid.
I denne C ++ opplæringen lærer du:
- Hva er en C ++ -vektor?
- Når skal jeg bruke en vektor?
- Hvordan initialisere vektorer i C ++
- Iteratorer
- Modifikatorer
- Eksempel 1
- Eksempel 2
- Kapasitet
- Eksempel 3
Når skal jeg bruke en vektor?
En C ++ -vektor bør brukes under følgende omstendigheter:
- Når du arbeider med dataelementer som endres konsekvent.
- Hvis størrelsen på dataene ikke er kjent før du begynner, krever ikke vektoren at du angir den maksimale størrelsen på beholderen.
Hvordan initialisere vektorer i C ++
Syntaksen til vektorene i C ++ er:
vectorname (items)
- Som vist ovenfor begynner vi med vektornøkkelordet.
- Datatypen er datatypen til elementene som skal lagres i vektoren.
- Navnet er navnet på vektoren eller dataelementene.
- Elementene angir antall elementer for vektorens data. Denne parameteren er valgfri.
Iteratorer
Formålet med iteratorer er å hjelpe oss med å få tilgang til elementene som er lagret i en vektor. Det er et objekt som fungerer som en peker. Her er de vanlige iteratorene som støttes av C ++ -vektorer:
- vektor :: begin (): den gir en iterator som peker på det første elementet i vektoren.
- vektor :: slutt (): den gir en iterator som peker på det siste elementet i vektoren.
- vektor :: cbegin (): det er det samme som vektor :: begin (), men det har ikke muligheten til å endre elementer.
- vektor :: cend (): det er det samme som vector :: end (), men kan ikke endre vektorelementer.
Modifikatorer
Modifikatorer brukes til å endre betydningen av den angitte datatypen. Her er de vanlige modifikatorene i C ++:
- vektor :: push_back (): Denne modifisereren skyver elementene bakfra.
- vektor :: insert (): For å sette inn nye elementer til en vektor på et spesifisert sted.
- vektor :: pop_back (): Denne modifisereren fjerner vektorelementene fra baksiden.
- vector :: erase (): Den brukes til å fjerne en rekke elementer fra den angitte plasseringen.
- vector :: clear (): Den fjerner alle vektorelementene.
Eksempel 1
#include#include using namespace std;int main(){vector nums;for (int a = 1; a <= 5; a++)nums.push_back(a);cout << "Output from begin and end: ";for (auto a = nums.begin(); a != nums.end(); ++a)cout << *a << " ";cout << "\nOutput from cbegin and cend: ";for (auto a = nums.cbegin(); a != nums.cend(); ++a)cout << *a << " ";return 0;}
Produksjon:
Her er et skjermbilde av koden:
Kode Forklaring:
- Inkluder iostream header-filen i koden vår. Det vil tillate oss å lese fra og skrive til konsollen.
- Inkluder vektoroverskriftsfilen i koden vår. Det vil tillate oss å jobbe med vektorer i C ++.
- Inkluder std navneområdet for å bruke klassene og funksjonene uten å ringe det.
- Ring til hovedfunksjonen () som logikken til programmet skal legges til i.
- {Markerer starten på kroppen til hovedfunksjonen ().
- Erklær en vektor som heter nums for å lagre et sett med heltall.
- Lag en for-løkke for å hjelpe oss med å itere over vektoren. Den variable vil hjelpe oss iterere over vektorelementer, fra en st til 5 th elementer.
- Skyv elementer inn i vektoren num fra baksiden. For hver iterasjon vil dette legge til gjeldende verdi av variabel a i vektoren, som er 1 til 5.
- Skriv ut litt tekst på konsollen
- Bruk en iteratorvariabel a for å iterere over elementene i vektornumre fra begynnelsen til det siste end-elementet. Merk at vi bruker vektor :: begynner () og vektor :: slutt () iteratorer.
- Skriv ut verdiene pekt av iteratorvariabelen a på konsollen for hver iterasjon.
- Skriv ut litt tekst på konsollen. \ N er et nytt linjetegn som flytter markøren til den nye linjen for å skrive ut derfra.
- Bruk en iteratorvariabel for å iterere over elementene i vektornumre fra begynnelsen til det siste elementet. Merk at vi bruker vektor :: cbegin () og vector :: cend () iteratorer.
- Skriv ut verdiene som iteratorvariabelen a peker på konsollen for hver iterasjon.
- Hovedfunksjonen skal returnere en verdi hvis programmet kjører vellykket.
- Slutten av kroppen til hovedfunksjonen ().
Eksempel 2
#include#include using namespace std;int main(){vector nums;nums.assign(5, 1);cout << "Vector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.push_back(2);int n = nums.size();cout << "\nLast element: " << nums[n - 1];nums.pop_back();cout << "\nVector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.insert(nums.begin(), 7);cout << "\nFirst element: " << nums[0];nums.clear();cout << "\nSize after clear(): " << nums.size();}
Produksjon:
Her er et skjermbilde av koden:
Kode Forklaring:
- Inkluder iostream header-filen i koden vår for å bruke funksjonene.
- Inkluder vektoroverskriftsfilen i koden vår for å bruke funksjonene.
- Inkluder std navneområdet for å bruke klassene sine uten å kalle det.
- Ring til hovedfunksjonen (). Programlogikken skal legges inn i kroppen.
- Starten på kroppen til hovedfunksjonen ().
- Erklær en vektor som heter nums for å lagre noen heltallverdier.
- Lagre 5 elementer i vektornumrene. Hver med en verdi på 1.
- Skriv ut litt tekst på konsollen
- Bruk en iteratorvariabel a for å iterere over elementene i vektornumre.
- Skriv ut verdiene til vektornumrene på konsollen for hver iterasjon.
- Legg til verdien 2 til slutten av vektornumrene.
- Erklær en heltalsvariabel n for å lagre størrelsen på vektornumrene.
- Skriv ut den siste verdien av vektornumre sammen med annen tekst. Den skal returnere en 2.
- Fjern det siste elementet fra vektornumrene. De to vil bli fjernet.
- Skriv ut tekst på konsollen. \ N flytter markøren til den nye linjen for å skrive ut teksten der.
- Bruk en iteratorvariabel a for å iterere over elementene i vektornumre.
- Skriv ut verdiene til vektornumrene på konsollen for hver iterasjon.
- Sett inn verdien 7 til begynnelsen av vektornumrene.
- Skriv ut den første verdien av vektornumre sammen med annen tekst. Den skal komme tilbake 7.
- Slett alle elementene fra vektornumrene.
- Skriv ut størrelsen på vektornum sammen med annen tekst etter å ha tømt alt innholdet. Den skal returnere 0.
- Slutten av kroppen til hovedfunksjonen ().
Kapasitet
Bruk følgende funksjoner for å bestemme kapasiteten til en vektor:
- Størrelse () - Den returnerer antall elementer i en vektor.
- Max_size () -Det returnerer det høyeste antall elementer en vektor kan lagre.
- Kapasitet () -Det returnerer mengden lagringsplass som er tildelt en vektor.
- Endre størrelse () - Den endrer størrelsen på beholderen slik at den inneholder n elementer. Hvis vektorens nåværende størrelse er større enn n, fjernes de bakre elementene fra vektoren. Hvis vektorens nåværende størrelse er mindre enn n, vil ekstra elementer legges til på baksiden av vektoren.
- Tom () -i t returnerer true hvis en vektor er tom, ellers returnerer den false.
Eksempel 3
#include#include using namespace std;int main() {vector vector1;for (int x = 1; x <= 10; x++)vector1.push_back(x);cout << "Vector size: " << vector1.size()<< endl;cout << "Vector capacity: " << vector1.capacity() << endl;cout << "Maximum size of vector: " << vector1.max_size()<< endl;vector1.resize(5);cout << "Vector size after resizing: " << vector1.size() << endl;if (vector1.empty() == false)cout << "Vector is not empty"< Produksjon:
Her er et skjermbilde av koden:
Kode Forklaring:
- Inkluder iostream header-filen i koden vår for å bruke funksjonen.
- Inkluder vektoroverskriftsfilen i koden vår for å bruke funksjonene.
- Inkluder std navneområdet i koden vår for å bruke klassene uten å kalle det.
- Ring til hovedfunksjonen (). Programlogikken skal legges til i kroppen til denne funksjonen.
- Lag en vektor med navnet vector1 for å lagre heltall.
- Bruk en for loop til å lage variabel x med verdier fra 1 til 10.
- Skyv verdiene til variabelen x inn i vektoren.
- Skriv ut størrelsen på vektoren sammen med annen tekst på konsollen.
- Skriv ut kapasiteten til vektoren sammen med annen tekst på konsollen.
- Skriv ut maksimalt antall elementer vektoren kan ha sammen med annen tekst på konsollen.
- Endre størrelsen på vektoren slik at den bare inneholder 5 elementer.
- Skriv ut den nye størrelsen på vektoren sammen med annen tekst.
- Sjekk om vektoren ikke er tom.
- Skriv ut tekst på konsollen hvis vektoren ikke er tom.
- Bruk en annen uttalelse for å si hva du skal gjøre hvis vektoren er tom.
- Tekst som skal skrives ut på konsollen hvis vektoren er tom.
- Programmet må returnere verdi etter vellykket gjennomføring.
- Slutten av hovedfunksjonen ().
Sammendrag:
- En C ++ -vektor er en dynamisk matrise som kan endre størrelsen på seg selv når et element legges til eller slettes fra det.
- Lagringen for en vektor håndteres automatisk av containeren.
- Elementene i en vektor lagres i sammenhengende lagring for å bli tilgjengelig og deretter krysset ved hjelp av iteratorer.
- Innsettingen av nye data til en vektor gjøres på slutten.
- Innsetting av data i en vektor tar en differensiell tid.
- Fjerningen av et element fra en vektor tar konstant tid.
- Innsetting eller sletting av et element i begynnelsen tar lineær tid.
- Vektorer bør brukes når man arbeider med dataelementer som endres konsekvent.
- Du kan også bruke vektorer hvis størrelsen på dataene ikke er kjent før du begynner.