HOWTO · C++
Schleifen über ein Array in C++
Dieser Artikel zeigt, wie man über ein Array in C++ iteriert
Auf dieser Seite
In diesem Artikel wird erklärt, wie man mit verschiedenen Methoden in C++ über ein Array iteriert.
Verwenden einer for-Schleife zur Iteration über ein Array
Die scheinbare Methode, über Array-Elemente zu iterieren, ist eine for-Schleife. Sie besteht aus einer dreiteiligen Anweisung, die jeweils durch Kommata getrennt ist. Zuerst sollten wir die Zählervariable - i initialisieren, die per Design nur einmal ausgeführt wird. Der nächste Teil deklariert eine Bedingung, die bei jeder Iteration ausgewertet wird, und wenn die falsche zurückgegeben wird, hört die Schleife auf zu laufen. In diesem Fall vergleichen wir den Zähler und die Größe des Arrays. Der letzte Teil inkrementiert den Zähler, und er wird ebenfalls bei jedem Schleifenzyklus ausgeführt.
#include <array>
#include <iostream>
using std::array;
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
array<string, 10> str_arr = {"Albatross", "Auklet", "Bluebird", "Blackbird",
"Cowbird", "Dove", "Duck", "Godwit",
"Gull", "Hawk"};
for (size_t i = 0; i < str_arr.size(); ++i) {
cout << str_arr[i] << " - ";
}
cout << endl;
return EXIT_SUCCESS;
}
Ausgabe:
Albatross - Auklet - Bluebird - Blackbird - Cowbird - Dove - Duck - Godwit - Gull - Hawk -
Bereichsbasierte Schleife zur Iteration über ein Array verwenden
Die bereichsbasierte Schleife ist die lesbare Version der traditionellen for-Schleife. Diese Methode ist eine leistungsfähige Alternative, da sie eine einfache Iteration über komplizierte Container bietet und trotzdem die Flexibilität für den Zugriff auf jedes Element beibehält. Das folgende Code-Beispiel ist die exakte Reimplementierung des vorhergehenden Beispiels:
#include <array>
#include <iostream>
using std::array;
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
array<string, 10> str_arr = {"Albatross", "Auklet", "Bluebird", "Blackbird",
"Cowbird", "Dove", "Duck", "Godwit",
"Gull", "Hawk"};
for (auto &item : str_arr) {
cout << item << " - ";
}
cout << endl;
return EXIT_SUCCESS;
}
Verwendung von den std::for_each Algorithmus zur Iteration über ein Array
for_each ist ein leistungsfähiger STL-Algorithmus, um auf Bereichselementen zu operieren und benutzerdefinierte Funktionen anzuwenden. Die ersten beiden Parameter sind das Anfangs- und das letzte Iterationsobjekt des Bereichs, der dritte Parameter ist das Funktionsobjekt. In diesem Fall deklarieren wir ein Funktionsobjekt als lambda-Ausdruck, der die berechneten Ergebnisse direkt an die Konsole ausgibt. Schließlich können wir die Variable custom_func als Argument an die Methode for_each übergeben, um auf Array-Elementen zu operieren.
#include <array>
#include <iostream>
using std::array;
using std::cin;
using std::cout;
using std::endl;
using std::for_each;
using std::string;
int main() {
array<int, 10> int_arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
auto custom_func = [](auto &i) { cout << i * (i + i) << "; "; };
;
for_each(int_arr.begin(), int_arr.end(), custom_func);
cout << endl;
return EXIT_SUCCESS;
}
Ausgabe:
2; 8; 18; 32; 50; 72; 98; 128; 162; 200;