C++之vector迭代器函数begin、end、rebegin、rend、cbegin、cend、crbegin、crend总结(二百零一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:理解C++之vector成员函数begin、end、rebegin、rend、cbegin、cend、crbegin、crend作用。

C++的vector是一种动态数组,它提供了一系列成员函数来操作和访问其元素。下面是这些成员函数的作用和用法:

    1. begin():返回指向vector第一个元素的迭代器。
    1. end():返回指向vector最后一个元素的下一个位置的迭代器。
    1. rbegin():返回指向vector最后一个元素的迭代器,用于逆向遍历。
    1. rend():返回指向vector第一个元素前一个位置的逆向迭代器,用于逆向遍历的结束位置。
    1. cbegin():与begin()类似,返回指向vector第一个元素的const迭代器,不允许修改元素。
    1. cend():与end()类似,返回指向vector最后一个元素的下一个位置的const迭代器,不允许修改元素。
    1. crbegin():与rbegin()类似,返回指向vector最后一个元素的const逆向迭代器,逆向不可修改。
    1. crend():与rend()类似,返回指向vector第一个元素前一个位置的const逆向迭代器,逆向不可修改。

2.应用实例

1. begin()函数返回一个指向vector第一个元素的迭代器。

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 使用begin()函数获取第一个元素的迭代器
    std::vector<int>::iterator it = vec.begin();

    // 输出第一个元素
    std::cout << "第一个元素:" << *it << std::endl;

    return 0;
}

2. end()函数返回一个指向vector最后一个元素的下一个位置的迭代器。

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 使用end()函数获取最后一个元素的下一个位置的迭代器
    std::vector<int>::iterator it = vec.end();

    // 输出最后一个元素的下一个位置的元素,此时应为未定义的值
    std::cout << "最后一个元素的下一个位置的元素:" << *it << std::endl;

    return 0;
}

3. rbegin()函数返回一个指向vector最后一个元素的逆向迭代器。

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 使用rbegin()函数获取最后一个元素的逆向迭代器
    std::vector<int>::reverse_iterator rit = vec.rbegin();

    // 输出最后一个元素
    std::cout << "最后一个元素:" << *rit << std::endl;

    return 0;
}

4. rend()函数返回一个指向vector第一个元素的前一个位置的逆向迭代器。

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 使用rend()函数获取第一个元素的前一个位置的逆向迭代器
    std::vector<int>::reverse_iterator rit = vec.rend();

    // 输出第一个元素的前一个位置的元素,此时应为未定义的值
    std::cout << "第一个元素的前一个位置的元素:" << *rit << std::endl;

    return 0;
}

5. cbegin()函数与begin()类似,返回一个指向vector第一个元素的const迭代器,用于访问vector的元素但不能修改它们。

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 使用cbegin()函数获取第一个元素的const迭代器
    std::vector<int>::const_iterator it = vec.cbegin();

    // 尝试修改第一个元素,将会编译错误
    //*it = 10;

    // 输出第一个元素
    std::cout << "第一个元素:" << *it << std::endl;

    return 0;
}

6. cend()函数与end()类似,返回一个指向vector最后一个元素的下一个位置的const迭代器,用于访问vector的元素但不能修改它们。

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 使用cend()函数获取最后一个元素的下一个位置的const迭代器
    std::vector<int>::const_iterator it = vec.cend();

    // 尝试修改最后一个元素的下一个位置的元素,将会编译错误
    //*it = 10;

    // 输出最后一个元素的下一个位置的元素,此时应为未定义的值
    std::cout << "最后一个元素的下一个位置的元素:" << *it << std::endl;

    return 0;
}

7. crbegin()函数与rbegin()类似,返回一个指向vector最后一个元素的const逆向迭代器,用于访问vector的元素但不能修改它们。

#include 
#include 
int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 使用crbegin()函数获取最后一个元素的const逆向迭代器
    std::vector<int>::const_reverse_iterator rit = vec.crbegin();

    // 尝试修改最后一个元素,将会编译错误
    //*rit = 10;

    // 输出最后一个元素
    std::cout << "最后一个元素:" << *rit << std::endl;

    return 0;
}

8. crend()函数与rend()类似,返回一个指向vector第一个元素的前一个位置的const逆向迭代器,用于访问vector的元素但不能修改它们。

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 使用crend()函数获取第一个元素的前一个位置的const逆向迭代器
    std::vector<int>::const_reverse_iterator rit = vec.crend();

    // 尝试修改第一个元素的前一个位置的元素,将会编译错误
    //*rit = 10;

    // 输出第一个元素的前一个位置的元素,此时应为未定义的值
    std::cout << "第一个元素的前一个位置的元素:" << *rit << std::endl;

    return 0;
}

你可能感兴趣的:(C++入门系列,c++,开发语言)