<sub class="descriptionSection">06-11-2024 04:10:pm // #Datatype // [[Data Types in C++]]</sub> ____ Vektoren sind ein Datentyp der, wie [[Stacks (C++)|Stacks]] daten in einer sequenz im Arbeitsspeicher ablegen. Ein Vektor kann jeden primitiven Datentyp enhalten ## Vektor vs Stack Der Vorteil eines Vektors gegenüber eines Stacks, besteht darin das man bei Vektoren per Array Syntax spezifische Elemente accessen kann: ```cpp cout << vec[<index>] << endl; ``` Allerdings gibt es hier natürlich performance implications die man beachten muss: Ein Vektor kann nur langsamer als ein Stack auf die Daten zugreifen. ## Syntax eines Vektors > [!NOTE] Info > Vektoren müssen erst per include importiert werden: > `#include<vector>` Einen Vector deklariert man so: ```cpp //ohne werte, jegliche daten access operation resultiert in einem Segfault vector<datatype> v; //alertnativ kann man direkt daten zuweisen: vector<datatype> v = {data, data, data}; ``` Actual beispiel: ```cpp vector<int> v; vector<int> v = {1, 2 ,3}; ``` ## Operations in einem Vektor Ein Vektor hat ein paar built-in Funktionen. Für eine komplette liste, am besten hier gehen: https://learn.microsoft.com/en-us/cpp/standard-library/vector-class?view=msvc-170#functions ```cpp vector<int> v = {1, 2, 3}; v.size() //returned 3, ist die komplette länge des vectors v.push_back(1) //fügt die nummer 1 nach dem höchsten index im Vector ein v.pop_back() //removed den höchsten Index vom Vector ``` ## For-each Loop Um über einen Vektor zu iterieren, kann man eine for-each funktion nutzen: ```cpp vecot<int> v = {1, 2, 3} for(int value : v){ // definiert eine for-each loop mit dem aktuellen element als "value" cout << value << " "; // wird returnen: 1 2 3 } ``` > [!abstract] Iterierungsrichtung > Eine for-each loop wird immer vom niedrigsten index zum höchsten index gehen