C++11的cbegin和cend函数介绍

C++11的cbegin和cend函数是C++11标准库中新增的一对函数,它们是两个迭代器函数,用于获取容器的开头和结尾的迭代器。

cbegin和cend函数的使用

1、cbegin函数用于获取容器的开头迭代器,它返回的是一个常量的迭代器,因此不能用来修改容器中的元素。


// 定义一个vector容器
std::vector vec = {1,2,3,4,5};

// 获取容器的开头迭代器
auto it = std::cbegin(vec);

2、cend函数用于获取容器的结尾迭代器,它返回的也是一个常量的迭代器,因此也不能用来修改容器中的元素。


// 定义一个vector容器
std::vector vec = {1,2,3,4,5};

// 获取容器的结尾迭代器
auto it = std::cend(vec);

3、cbegin和cend函数可以用于遍历容器中的元素,如下所示:


// 定义一个vector容器
std::vector vec = {1,2,3,4,5};

// 遍历容器中的元素
for(auto it = std::cbegin(vec); it != std::cend(vec); ++it)
{
    std::cout << *it << " ";
}

cbegin和cend函数的优点

1、cbegin和cend函数比begin和end函数更加安全,因为它们返回的都是常量的迭代器,因此不能用来修改容器中的元素,从而避免了程序出现错误。

2、cbegin和cend函数可以更加方便的遍历容器中的元素,因为它们的返回值是一对迭代器,可以直接用于for循环遍历容器中的元素。

3、cbegin和cend函数还可以用于获取容器的长度,如下所示:


// 定义一个vector容器
std::vector vec = {1,2,3,4,5};

// 获取容器的长度
int len = std::cend(vec) - std::cbegin(vec);