0 Tage Serie
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.