Abgesehen vom normalen Array können alle Container (weitestgehend)
in gleicher Weise benutzt werden
(Zugriff, einfügen etc. ),
nur der Aufwand für die nötigen Operationen
kann stark variieren.
Z.B., wenn in einem Vektor am Beginn etwas eingefügt
wird müssen alle Elemente verschoben werden.
Standard–Iteratoren:
Und noch die Grösse:
size()
#include <vector> // vector headers #include <iostream> using namespace std; int main() { vector<double> v; // empty <double> vector double x; while ( cin >> x ) { // read input until EOF v.push_back(x); // append in vector } // classical loop, mit Index for (int i = 0; i < v.size(); i++ ) { cout << v[i]; } // container loop mit Iterator // for ( vector<double>::iterator vp = v.begin(); vp != v.end(); vp++ ) { for ( auto vp = v.begin(); vp != v.end(); vp++ ) { // C++11 cout << *vp ; // de-referencing as for pointers } // foreach in C++11 for ( auto a : v) { cout << a; } }
Für praktische Arbeit ist STL-vector besonders wichtig. Sollte (fast) immer anstelle des Standard C Arrays verwendet werden!
Ausnahmen sind u.U. lokal verwendete, direkt initialisierte Arrays oder bei sehr speicher-/zeit-kritischen Anwendungen mit mehr-dimensionalen Arrays.