Kopier vektor C ++

Kopier vektor C ++
Vektorer er sekvensielle beholdere som representerer matriser av variabel størrelse. Vektorer, som matriser, bruker sammenhengende lagringsrom for sine elementer, noe som betyr at de kan nås ved hjelp av områder på vanlige pekere til elementene deres på samme måte som matriser kan. I motsetning til matriser, varierer imidlertid størrelsen deres dynamisk, med containerhåndteringslagring automatisk.

I situasjonen med matriser er den eneste måten å kopiere en matrise til en annen å bruke en iterativ tilnærming, som innebærer å kjøre en loop og kopiere hvert element på passende indeks. Heldigvis inkluderer vektorklasser mange måter å kopiere en hel vektor til en annen på en mer praktisk måte.

Kopiering av en vektor innebærer å lage en ny vektor som har en kopi av alle komponentene i den opprinnelige vektoren i samme rekkefølge.

Eksempel 1: STD :: kopimetode for å kopiere vektor i C++

Std :: kopien er en innebygd funksjon for å kopiere elementer av den ene vektoren til den andre. Forsikre deg imidlertid om at målvektoren har nok plass til å holde alle den opprinnelige sekvensens komponenter.

Programmet har overskriftsdelen med de nødvendige filene. Først har vi iostream -filen; Deretter har vi en vektorfil, en standard innebygd bibliotekfil i C++. Gjennom dette biblioteket kan vi bruke vektorer i programmet. Deretter har vi en algoritmeoverskriftsfil for å kopiere elementer av vektorer. Vi har også tatt med iteratorfilen i programmet, som lar oss få tilgang til elementene i vektorene.

Nå har vi hovedfunksjonen der vi har erklært en variabel som "VEC1" av vektortype og initialisert den med heltallsarrayen. Deretter har vi erklært en annen vektortypevariabel som "VEC2". Deretter påberopte kopifunksjonen, som kopierer alle elementene i “VEC1” til “VEC2”. Begynnende () -funksjonen tar den første vektor iteratoren, slutt () -funksjonen tar den siste vektor iteratoren, og Back_Insertor setter her inn elementene fra baksiden.

Så har vi for sløyfetilstand, som løkker syklusen over hvert element som er lagret i “VEC1” og skriver ut elementene. Det samme er tilfellet for "VEC2" -elementer; Det itererer også gjennom for -sløyfesyklusen og vil skrive ut på hurtigskjermen.

#inkludere
#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
vektor vec1 3, 6, 6, 11;
vektor vec2;
Kopi (VEC1.Begynn (), VEC1.end (), Back_Inserter (vec2));
cout << "Elements of Vector1 : ";
for (int v = 0; vcout << vec1[v] << " ";
cout << endl;
cout << "Elements of Vector2 : ";
for (int v = 0; vcout << vec2[v] << " ";
cout<< endl;
retur 0;

Utgangen ovenfor viser at vektoren ble kopiert til den andre vektoren.

Eksempel2: Tildel () -metode for å kopiere vektor i C++

Et annet alternativ er å bruke vektorklassens offentlige medlemsmetode tilordne (), som erstatter vektorelementene med elementer fra det definerte området.

Vi har inkludert alle nødvendige filer i overskriftsdelen, som lar oss få tilgang til vektorelementene, kopiere vektorelementet og også la oss bruke vektorer i programmet. I tillegg er navneområdet STD -filen inkludert i programmets overskrift.

Neste trinn påkaller hovedfunksjonen der programgjennomføringen er gjort for utførelse. Først har vi definert en variabel vektortype "A" som lagrer heltall i et matrisermønster. Deretter har vi en annen variabel, “B” også av vektortype.

Etter å ha definert variabelen, har vi brukt Assign () -metoden, som returnerer iteratoren som peker til den første og den siste vektoren “A”. Tildelingsmetoden kopierte vektoren “A” elementer til vektoren “B” -elementer. Nå brukes for -loopen til å iterere over vektoren "A" -elementer og vil skrive ut elementene i vektoren "A". For -loopen brukes også til iterasjonen på vektor "B" -elementer og viser disse elementene gjennom Cout -kommandoen.

#inkludere
#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
vektor A 3, 5, 7, 9, 11;
vektor b;
b.Tilordne (a.Begynn (), a.slutt());
cout << "Elements of vector : ";
for (int i = 0; icout << a[i] << " ";
cout << endl;
cout << "Elements of new vector : ";
for (int i = 0; icout << b[i] << " ";
cout<< endl;
retur 0;

Vektoren kopieres til den andre vektoren. Derfor kan vi også bruke tildelingsfunksjonen i C ++ for å kopiere vektorelementer til de andre elementene i vektoren.

Eksempel 3: Tildelingsoperatørmetode for å kopiere vektor i C++

En vektor kan også kopieres til en annen vektor med tildelingsoperatøren. Årsaken til at en slik oppdragsoperatør fungerer er at den bare overskriver de eksisterende medlemmene hvis noen av disse er tilgjengelige, ellers tildeler varen der den er kopiert.

Det første trinnet har inkludert viktige filer i overskriftsdelen som kreves for dette programmet. Vi har også et navneområde STD -fil for å bruke sin funksjon i programmet. Deretter har vi hovedfunksjonen der vi har erklært to variabler, “Vector1” og “Vector2” av vektortype. Bare “Vector1” initialiseres med heltallsarrayen.

Nå har vi en tildelingsoperatør (=) som kopierer “Vector1” -elementene til “Vector2” -elementene ved å plassere “=” -operatøren mellom “Vector1” og “Vector2”. For -loopen brukes til iterasjonen over både de gitte vektorene og skriver ut elementene som er til stede i de spesifiserte vektorene gjennom cout -objektet.

#inkludere
#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
vektor vektor1 0, 2, 4, 6, 8;
vektor vektor2;
vektor2 = vektor1;
cout << "vector1 elements : ";
for (int i = 0; icout << vector1[i] << " ";
cout << endl;
cout << "vector2 elements : ";
for (int i = 0; icout << vector2[i] << " ";
cout<< endl;
retur 0;

Vector1 -elementene kopieres til Vector2 -elementene som vist i følgende hurtigskjerm.

Eksempel 4: Konstruktørmetode for å kopiere vektor i C++

Når en vektor er deklarert, kopierer du en eksisterende initialisert vektor, kopierer elementene til den gitte vektoren til den nylig deklarerte vektoren. Vi må gi en kildevektor til destinasjonsvektoren som konstruktør, som deretter vil bli kalt kopikonstruktøren.

Fra og med toppseksjonen har vi noen standard innebygde bibliotekfiler med C ++ som er nødvendige for dette programmet. Hovedfunksjonen påberopes deretter der vi har erklært en vektortypevariabel som "P". Variabelen “P” inneholder rekke heltall. Deretter erklærer en ny vektor som “P” og passerer et element fra en eksisterende vektor “P” i konstruktørmetoden.

Gjennom konstruktørmetoden kopieres vektoren “P” -elementene til vektoren “Q”. For -loopen brukes til både vektorene “P” og “Q” og vil bli skrevet ut på den hurtige skjermen til Ubuntu.

#inkludere
#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
vektor P 1996, 1997, 1998, 1999;
vektor q (p);
cout << "Elements of old vector : ";
for (int i = 0; icout << p[i] << " ";
cout << endl;
cout << "Elements of new vector: ";
for (int i = 0; icout << q[i] << " ";
cout<< endl;
retur 0;

Derfor blir elementene kopiert fra den gamle vektoren “P” til den nye vektoren “Q” på følgende skjerm.

Konklusjon

Vi lærte om mange metoder for å kopiere en vektor til en ny vektor. Vi har brukt fire forskjellige tilnærminger for å kopiere vektorer i C++. Disse tilnærmingene inkluderte Std :: kopimetode, tilordne metode, oppgavoperatørmetode og en passerende kildevektor som konstruktør. Med de velprøvde resultatene av disse metodene som brukes i programmet, har vi kopiert elementene i de eksisterende vektorelementene til den nydannede vektoren i programmeringsspråket C ++.