2015-07-03 13 views

Trả lời

24

begin sẽ trả về số iterator hoặc const_iterator tùy thuộc vào trình độ const của đối tượng được gọi.

cbegin sẽ trả lại const_iterator vô điều kiện.

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

Vậy phải không? Vì vậy, trên thực tế, chúng tôi có hai chức năng hoạt động hoàn toàn giống nhau trên các đối tượng const ... Liệu nó có thực sự có ý nghĩa? – user3663882

+0

Vâng, tôi hiểu, nó có ý nghĩa. Cảm ơn bạn. – user3663882

+0

Đó là sự linh hoạt. Nếu bạn biết bạn cần 'const_iterator', hãy gọi' cbegin'. Nếu bạn biết bạn cần một 'iterator', gọi' begin' và bạn sẽ gặp lỗi nếu nó không hợp lệ. Nếu bạn không quan tâm, hãy gọi 'bắt đầu'. – TartanLlama

Các vấn đề liên quan