Eigenschaften von `std::array`
Eigenschaften von `std::array`
- Feste Größe: Die Größe eines `std::array` ist zur Kompilierungszeit festgelegt und kann zur Laufzeit nicht geändert werden.
- Typensicherheit: `std::array` kennt den Typ der Elemente und stellt sicher, dass nur Elemente dieses Typs gespeichert werden können.
- Effizient: `std::array` wird direkt im Speicher angelegt und besitzt keinen Overhead wie dynamische Container (z.B. `std::vector`).
- Zugriffsmöglichkeiten: Es bietet verschiedene Methoden für den Zugriff auf seine Elemente, wie `at()`, `[]`, `front()`, `back()` und `data()`.
Beispiel zur Deklaration und Nutzung eines `std::array`
#include <iostream>
#include <array>
int main() {
// Ein Array mit fünf Ganzzahlen
std::array<int, 5> myArray = {1, 2, 3, 4, 5};
// Zugriff auf Elemente mit Index
std::cout << "Erstes Element: " << myArray[0] << std::endl;
// Zugriff mit der at() Methode (wirft eine Ausnahme bei ungültigem Index)
std::cout << "Zweites Element: " << myArray.at(1) << std::endl;
// Durchlaufen des Arrays mit einer Schleife
std::cout << "Alle Elemente: ";
for (int i : myArray) {
std::cout << i << " ";
}
std::cout << std::endl;
// Zugriff auf das erste und letzte Element
std::cout << "Erstes Element: " << myArray.front() << std::endl;
std::cout << "Letztes Element: " << myArray.back() << std::endl;
// Zugriff auf den zugrundeliegenden C-Array-Pointer
int* dataPtr = myArray.data();
std::cout << "Zugriff über den Zeiger: " << dataPtr[2] << std::endl;
return 0;
}
Vorteile der Verwendung von `std::array`
1. Sicherheit: Die Verwendung von `std::array` ist sicherer als die Verwendung von C-Arrays, da der Typ und die Größe des Arrays während der Kompilierung geprüft werden.
2. Zusätzliche Funktionen: `std::array` bietet zusätzliche Funktionen zur Manipulation und Inspektion des Arrays, die bei einem C-Array manuell implementiert werden müssten.
3. Einfachheit: Es integriert sich besser in die C++-Standardbibliothek und kann mit anderen STL-Komponenten verwendet werden.
Wann sollte man `std::array` verwenden?
`std::array` eignet sich hervorragend für Szenarien, in denen die Array-Größe zur Kompilierungszeit bekannt ist und nicht geändert werden muss. Es ist eine gute Wahl, wenn man die Sicherheit und die Funktionalität der C++-Standardbibliothek nutzen möchte, während man dennoch die Effizienz von Arrays beibehält. Für dynamische Arrays, deren Größe sich zur Laufzeit ändern soll, ist jedoch `std::vector` besser geeignet.