Ein gängiges Problem ist, dass mann nicht nur einzelne Werte speichern und ansprechen möchte, sondern dass man viele Werte gemeinsam in einer Art Liste speichert, z.B. Messreihe von numerischen Werten, E-Mail Liste von Studenten im C++ Kurs, etc.
Es gibt verschiedene Möglichkeiten wie man das in C++ machen kann, in den meisten Fällen ist der STL Vector (vector<Type>) empfohlen. Dieser ist sehr flexibel in Bezug auf dynamisches Erzeugen, Erweitern, Initialisieren, Kopieren, etc.
#include <vector> // ... vector<int> n(20); // Deklaration von int vector mit 20 Elementen // direkter Zugriff auf einzelne Elemente mittels [index] // aber Vorsicht, C/C++ zaehlt von 0 bis N-1 n[0] = ...; //1. Element ... n[19] = ...;// Letztes Element // Auch direkte Initialisierung moeglich, // dann keine Dimensionierung noetig vector<double> x = { 2.7, 8.1, 9.0, 27.4, -1.45e8, 0.886e-50 }; // // Ausgabe 1. und letztes Element cout << x[0] << " " << x[5] << endl; // // Kopieren: auto m = n; // independent copy of n m[0] = 99; cout << m[0]; // -> 99 cout << n[0]; // -> 0
Ein etwas anderes Problem ist, dass man einige Werte –auch unterschiedlichen Typs– gemeinsam speichern und ansprechen möchte.
Tuple ist Container um Objekte verschiedenen Typs und beliebiger Anzahl zu gruppieren.
tuple<int,float,string> t(1,2.f,"text"); |
int x = get<0>(t); |
float y = get<1>(t); |
string z = get<2>(t); |
Etwas sperrige Syntax in der Benutzung...