cpp / intermediate
Snippet
Benutzerdefinierte bereichsbasierte Iteration
Durch die Implementierung der Methoden begin() und end(), die Pointer (oder Iteratoren) zurückgeben, ermöglichen Sie die Verwendung Ihrer benutzerdefinierten Klassen in C++-bereichsbasierten for-Schleifen.
snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>class NumberBox {int data[3] = {10, 20, 30};public:int* begin() { return &data[0]; }int* end() { return &data[3]; }};int main() {NumberBox box;for (int val : box) {std::cout << val << " ";}return 0;}
Erklärung
1
int* begin() { return &data[0]; }
Gibt einen Zeiger auf das erste Element des internen Arrays zurück.
2
for (int val : box)
Der Compiler verwendet die begin()- und end()-Methoden, um das Objekt zu durchlaufen.