Heim >Backend-Entwicklung >C#.Net-Tutorial >Detaillierte Erläuterung der Verwendung von C++-Vektoren

Detaillierte Erläuterung der Verwendung von C++-Vektoren

藏色散人
藏色散人Original
2020-03-06 10:55:003422Durchsuche

Detaillierte Erläuterung der Verwendung von C++-Vektoren

Detaillierte Erklärung der Verwendung von C++-Vektoren

Vektor ist ein wichtiges Mitglied von C++ STL Die Header-Datei muss eingefügt werden:

#include<vector>;

1. Initialisierung des Vektors: Es gibt fünf Möglichkeiten, Beispiele sind wie folgt:

Empfohlen: „C++-Tutorial

(1 ) vectorbd43222e33876353aff11e13a7dc75f6 //Ein Vektor mit 10 ganzzahligen Elementen ist definiert (der Name des Elementtyps steht in spitzen Klammern, es kann sich um einen beliebigen zulässigen Datentyp handeln), es ist jedoch kein Anfangswert vorhanden gegeben, und sein Wert ist Unsicher.

(2) vectorbd43222e33876353aff11e13a7dc75f6 a(10,1); //Ein Vektor aus 10 ganzzahligen Elementen wird definiert und der Anfangswert jedes Elements wird als 1 angegeben

( 3 ) vectorbd43222e33876353aff11e13a7dc75f6 //Verwenden Sie b vector, um einen Vektor zu erstellen und die Gesamtkopie zuzuweisen

(4) vectorbd43222e33876353aff11e13a7dc75f6 ; //Der Wert von a ist definiert als das 0. bis 2. (insgesamt 3) Element in b

(5) int b[7]={1,2,3,4,5 ,9,8 };

vectorbd43222e33876353aff11e13a7dc75f6 //Den Anfangswert aus dem Array abrufen

2. Mehrere wichtige Operationen von Vektorobjekten, Beispiele Die Beschreibung lautet wie folgt folgt:

(1) a.assign(b.begin(), b.begin()+3); //b ist ein Vektor, weisen Sie a den Vektor zu, der aus 0~2 Elementen von b besteht

(2) a.assign(4,2); // a enthält nur 4 Elemente und jedes Element ist 2

(3) a.back(); //Gibt das zurück letztes Element eines

(4) a.front(); // Gibt das erste Element eines

zurück (5) a[i] // Gibt ein Das i-te Element zurück von , genau dann, wenn a[i] existiert 2013-12-07

(6) a.clear(); //Löschen Sie das Element in einem

(7 ) a.empty (); // Bestimmen Sie, ob a leer ist, geben Sie true zurück, wenn es nicht leer ist, geben Sie false zurück

(8) a.pop_back(/) Löschen Sie das letzte Element von a vector

(9) a.erase(a.begin()+1,a.begin()+3); //Das 1. (vom 0.) bis zum 2. Element in a löschen , die gelöschten Elemente werden von a.begin()+1 (einschließlich) bis a.begin()+3 (ohne es) gezählt

(10) a.push_back(5) //Einfügen Element nach dem letzten Vektor von a, sein Wert ist 5

(11) a.insert(a.begin()+1,5); //Füge das erste Element von a ein. Füge den Wert 5 ein Position des Elements (von 0 an gezählt). Wenn a beispielsweise 1,2,3,4 ist, ist es nach dem Einfügen des Elements 1,5,2,3,4

( 12) a. insert(a.begin()+1,3,5); //Fügen Sie 3 Zahlen an der Position des ersten Elements von a ein (von 0 an gezählt), und ihre Werte sind alle 5

(13) a.insert(a.begin()+1,b+3,b+6); //b ist ein Array, füge b an der Position des ersten Elements von a ein (gezählt ab dem 0.). 1) Das 3. Element bis zum 5. Element (außer b + 6). Wenn b 1,2,3,4,5,9,8 ist, beträgt es nach dem Einfügen des Elements 1,4,5,9,2 ,3, 4,5,9,8

(14) a.size(); //Die Anzahl der Elemente in a zurückgeben

(15) a.capacity(); //Die Gesamtzahl der Elemente zurückgeben, die a im Speicher aufnehmen kann

(16) a.resize(10); //Die vorhandene Anzahl der Elemente von a auf 10 anpassen, löschen, wenn es mehr ist, und füllen, wenn es kleiner ist. Sein Wert ist zufällig Ergänzung, wenn weniger. Sein Wert ist 2

(18) a.reserve(100); //Erweitern Sie die Kapazität von a auf 100, was bedeutet, dass beim Testen von a.capacity(); ist 100. Dieser Vorgang kann nur ausgeführt werden, wenn er nur dann sinnvoll ist, wenn Sie eine große Datenmenge zu a hinzufügen müssen, da dadurch mehrere Speicherkapazitätserweiterungsvorgänge vermieden werden (der Computer wird automatisch erweitert, wenn die Kapazität von a nicht ausreicht). Dies führt natürlich zwangsläufig zu Leistungseinbußen)

(19) a.swap(b); //b ist ein Vektor, tausche die Elemente in a und die Elemente in b als Ganzes aus

(20) a==b; //b ist ein Vektor, Vergleich von Vektoren. Die Operationen umfassen !=,>=,ea2e6b7668fd5e472327f7c8970e7490,<

3. Mehrere Möglichkeiten, auf Vektoren zuzugreifen Beispiele lauten wie folgt:

(1) Vektor a Elemente hinzufügen zu

 vector<int> a;
for(int i=0;i<10;i++)
a.push_back(i);

2 Sie können auch Elemente aus dem Array auswählen, um sie dem Vektor

int hinzuzufügen a[6]={1,2,3,4,5,6};

vectorbd43222e33876353aff11e13a7dc75f6 b;

for(int i=1;i<=4;i++ )

b.push_back(a[i]);

3 Sie können auch Elemente aus dem vorhandenen Vektor auswählen, um sie dem Vektor hinzuzufügen

int a[6] ={1,2,3,4,5,6};

vectorbd43222e33876353aff11e13a7dc75f6

vectorbd43222e33876353aff11e13a7dc75f6 c(a,a+4);

for(vectorbd43222e33876353aff11e13a7dc75f6::iterator it=c.begin();it< c.end();it++)

b.push_back(*it);

4 . Sie können auch Elemente aus der Datei lesen und

ifstream in("data.txt");
vector<int> a;
for(int i; in>>i)
    a.push_back(i);

5 zum Vektor hinzufügen, [Missverständnis]

vector<int> a;
for(int i=0;i<10;i++)
    a[i]=i;
//这种做法以及类似的做法都是错误的。刚开始我也犯过这种错误,后来发现,下标只能用于获取已存在的元素,而现在的a[i]还是空的对象

(2) Elemente aus Vektoren lesen

1 Indizes

int a[6]={1,2,3,4,5,6};
vector<int> b(a,a+4);
for(int i=0;i<=b.size()-1;i++)
    cout<<b[i]<<" ";

2. Durchsuchen von Traversen

int a[6]={1,2,3,4,5,6};
vector<int> b(a,a+4);
for(vector<int>::iterator it=b.begin();it!=b.end();it++)
    cout<<*it<<" ";

Vier. Mehrere wichtige Algorithmen müssen Header-Dateien enthalten, wenn sie verwendet werden:

#include<algorithm>

(1) sort(a.begin( ),a.end()); //Für a Die Elemente von a.begin() (einschließlich) bis a.end() (ohne es) sind von klein nach groß angeordnet

(2)reverse(a.begin(),a.end()); //Für die Elemente in a von a.begin() (einschließlich) bis a.end() (ohne es) Invertieren, aber nicht anordnen. Zum Beispiel sind die Elemente in a 1,3,2,4. Nach der Invertierung sind sie 4,2,3,1

(3) copy(a.begin(),a .end( ),b.begin()+1); //Kopiere die Elemente in a von a.begin() (einschließlich) nach a.end() (ohne es) nach b, von b.begin( ) +1 Position (einschließlich dieser) und mit dem Kopieren beginnen, wobei das ursprüngliche Element überschrieben wird

(4) find(a.begin(),a.end(),10); //From in a Find 10 in the Element von a.begin() (einschließlich) in a.end() (ohne es) umwandeln und, falls vorhanden, seine Position im Vektor

zurückgeben

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von C++-Vektoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn