lprulzcrossover
Cadet 4th Year
- Registriert
- März 2014
- Beiträge
- 71
Hey,
lernen grade in der Uni C++ (bisher nur C). Ich muss jede for-Schleife durch die range-based for-Schleife aus C++11 ersetzen.
Allerdings bekomme ich dabei einen Fehler, mit dem ich nichts anfangen kann. Ich nehme an dass es nicht geht, weil ja nur ein pointer auf das array übergeben wird und nicht das array selbst. Aber wie mache ich es dann?
Ich hoffe hier ist ein Erfahrener unterwegs, der den Fehler schnell erkennt
Danke jedenfalls schonmal.
Der Error:
error: no matching function for call to 'begin(int*&)'
Der ursprüngliche Code:
lernen grade in der Uni C++ (bisher nur C). Ich muss jede for-Schleife durch die range-based for-Schleife aus C++11 ersetzen.
Allerdings bekomme ich dabei einen Fehler, mit dem ich nichts anfangen kann. Ich nehme an dass es nicht geht, weil ja nur ein pointer auf das array übergeben wird und nicht das array selbst. Aber wie mache ich es dann?
Code:
void sort1(int num[], int start, int end) {
bool finished = 0;
while(!finished) {
finished = 1;
for(int i : num) { // hier ist die Fehleranzeige
if(i > i+1) {
swap(num, i, i+1);
finished = 0;
}
}
}
}
Ich hoffe hier ist ein Erfahrener unterwegs, der den Fehler schnell erkennt

Der Error:
error: no matching function for call to 'begin(int*&)'
Der ursprüngliche Code:
Code:
void sort1(int num[], int start, int end) {
int finished = 0, i;
while(!finished) {
finished = 1;
for(i=start ; i<end ; i++) {
if(num[i] > num[i+1]) {
swap(num, i, i+1);
finished = 0;
}
}
}
}
Zuletzt bearbeitet:
(Ausgangscode hinzugefügt)