r3kc4H
#naukaprogramowania #cpp11 #cpp #visualstudio
Witam, witam, mam pytanie odnośnie pętli range for loop w cpp11. Mam taką tablicę:
Figure ** tab = new Figure*[100];
Możecie podpowiedzieć jak ta konstrukcja for'a powinna wyglądać? Dla for (auto &j : tab) sypie błędami:
no callable 'begin' function found for type 'Figure '
no callable 'end' function found for type 'Figure
'
Dzięki.
2
  • Najlepsze
  • Wszystkie komentarze
k.....r
k.....r
@r3kc4H: łap wrapper, o którym pisałem, zaklepany na szybko: http://ideone.com/hMMnOp
3
k.....r
k.....r
@r3kc4H: range for nie działa dla wskaźników. Możesz użyć std::vector zamiast tego lub napisać sobie wrapper, który będzie miał begin i end
2
nargil
@kuhar: kierowałeś się jakąś konwencją wybierając konstruktor dla Range(T, size_t) ? Dlaczego nie Range(T begin, T end), które jest bardziej zgodne z STL ?
1
k.....i
k.....i
@r3kc4H @kuhar: Skoro rozmiar kontenera jest stały i znany w czasie kompilacji, można posunąć się krok dalej i użyć zalecanego w takich przypadkach od C++11 typu std::array.
1
r3kc4H
@kuhar: Aha, dzięki, w takim razie musiałem tego nie doczytać.
0
r3kc4H
@kuhar: Dzieki wielkie ( ͡° ͜ʖ ͡°)
0
k.....r
k.....r
@nargil: wydaje mi się, że operują na dynamicznych tablicach jako pointery, częściej operuje się na parze początek, długość. Jest to kompletny detal, można sobie dodać funkcję make_range biorącą 2 pointery i obie konwencje będą zadowolone
0