2015-07-03 55 views

回答

24

begin將返回iteratorconst_iterator,具體取決於所調用對象的常量限定。

cbegin將無條件返回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

就是這樣?所以實際上,我們有兩個函數在const對象上表現完全相同......它是否有意義? – user3663882

+0

是的,我明白了,這是有道理的。謝謝。 – user3663882

+0

這是爲了靈活性。如果你知道你需要一個'const_iterator',調用'cbegin'。如果你知道你需要一個'iterator',調用'begin',如果它無效,你會得到一個錯誤。如果您不在意,請致電'begin'。 – TartanLlama

相關問題