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

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

cbegin 和 cend 函数的使用

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

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

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

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

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

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

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

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

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

cbegin 和 cend 函数的优点

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

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

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

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

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