2015-07-03 11 views

Odpowiedz

24

begin zwróci wartość iterator lub const_iterator w zależności od kwalifikacji const obiektu, do którego jest wywoływana.

cbegin zwróci bezwarunkowo const_iterator.

std::vector<int> vec; 
const std::vector<int> const_vec; 

vec.begin(); //iterator 
vec.cbegin(); //const_iterator 

const_vec.begin(); //const_iterator 
const_vec.cbegin(); //const_iterator 
+0

To wszystko? Tak więc, mamy dwie funkcje zachowujące się zupełnie tak samo na obiektach const ... Czy to ma sens? – user3663882

+0

Tak, widzę, to ma sens. Dziękuję Ci. – user3663882

+0

To dla elastyczności. Jeśli wiesz, że potrzebujesz 'const_iterator', wywołaj' cbegin'. Jeśli wiesz, że potrzebujesz 'iteratora', zadzwoń' begin', a otrzymasz błąd, jeśli nie jest prawidłowy. Jeśli nie przejmujesz się, zadzwoń do 'begin'. – TartanLlama

Powiązane problemy