C++迭代器中 cbegin,cend 与 begin,end 的区别

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

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

下面通过容器说明:

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

你可能感兴趣的:(C++学习,C++,C++基础,C++细节)