cbegin和cend是C++11新标准引入的两个函数。

begin和end换回的具体类型由对象是否是常量来决定,如果是常量,begin和end换回const_iterator;如果不是常量,换回iterator;
cbegin和cend是不管是对象本身是不是常量,换回值都是const_iterator.

下面通过容器说明:

vector<int> v;
const vector<int> cv;
auto it1 = v.begin();   //it1类型是vector<int>::iterator
auto it2 = cv.begin();  //it2类型是vector<int>::const_iterator
auto it3 = v.cbegin();  //it3类型是vector<int>::const_iterator
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐