Container

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.


Image vector Image list


Wichtige Zugriffsfunktionen:

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.