Ben gcc 4.8.2 aşağıdaki kodu derlemeye çalıştığınızda, aşağıdaki hatayı alıyorum: başkalarının bir süre grup ile birlikteMenzil tabanlı For döngüsü olmayan ana işleve geçirilen dizisinde
test.cc: In function ‘void foo(int*)’: test.cc:15:16: error: no matching function for call to ‘begin(int*&)’ for (int i : bar) { ^
şablon kitaplığından daha derinde.
#include <iostream>
using namespace std;
void foo(int*);
int main() {
int bar[3] = {1,2,3};
for (int i : bar) {
cout << i << endl;
}
foo(bar);
}
void foo(int* bar) {
for (int i : bar) {
cout << i << endl;
}
}
ben döngü için dizinlenmiş kullanmak foo
yeniden tanımlamak, sonra kod derler ve beklendiği gibi davranır. Ayrıca, aralık tabanlı çıktı döngüsünü main
'a taşırsam, beklenen davranışı da alırım.
bar
dizisini foo
numaralı dizgeye nasıl bir aralık temelli for döngüsü yürütecek şekilde geçirebilirim?