📜  在C++ STL中设置cbegin()和cend()函数(1)

📅  最后修改于: 2023-12-03 14:51:14.945000             🧑  作者: Mango

在C++ STL中设置cbegin()和cend()函数

在C++的STL(标准模板库)中,cbegin()和cend()函数是两个非常有用的函数,它们可以让我们在不修改容器的情况下对其进行遍历操作。这对于保证代码的稳健性和安全性非常重要。

cbegin()函数

cbegin()函数可以返回一个指向容器第一个元素的常迭代器。该迭代器可以用于遍历容器,但不能修改容器中的元素。其函数原型如下:

const_iterator cbegin() const noexcept;

其中,const_iterator是一个指向容器中元素的常迭代器类型,noexcept表示该函数不抛出异常。

下面是一个简单的示例:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    for (auto it = vec.cbegin(); it != vec.cend(); ++it) {
        std::cout << *it << " ";
    }
    return 0;
}

该程序遍历了一个std::vector容器中的元素,并输出它们的值。需要注意的是,迭代器it是一个指向常量的迭代器,因此不能修改vec中的元素。

cend()函数

cend()函数可以返回一个指向容器中最后一个元素后面的位置的常迭代器。该迭代器可以用于遍历容器,但不能修改容器中的元素。其函数原型如下:

const_iterator cend() const noexcept;

接下来,还是以std::vector为例,展示cend()函数的使用方法:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    for (auto it = vec.cbegin(); it != vec.cend(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    for (auto it = vec.crbegin(); it != vec.crend(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

该程序遍历了一个std::vector中的元素,并输出它们的值。需要注意的是,迭代器it是一个指向常量的迭代器,因此不能修改vec中的元素。

总结

cbegin()和cend()函数可以让我们在不修改容器的情况下对其进行遍历操作,以确保代码的稳健性和安全性。这两个函数在STL中的使用非常普遍,熟练掌握它们的语法和用法是每个C++程序员的必备技能。