在C++11标准之前,STL中并没有array这个容器。程序员们主要使用C风格数组和vector来管理序列数据,但这两种方式都存在各自的局限性。C风格数组过于简单,无法动态调整大小;vector虽然安全好用,但是过于笨重。至此,array容器孕育而生。array本质上是对C风格数组的轻量级封装,保留了性能优势的同时增加了安全性。

下表展示了array容器支持的成员函数和成员变量:

成员函数

功能说明

begin()

返回指向第一个元素的正向迭代器;对于const array返回常量正向迭代器

end()

返回指向最后一个元素之后位置的正向迭代器;对于const array返回常量正向迭代器。通常与begin()配对使用

rbegin()

返回指向最后一个元素的反向迭代器;对于const array返回常量反向迭代器

rend()

返回指向第一个元素之前位置的反向迭代器;对于const array返回常量反向迭代器。通常与rbegin()配对使用

cbegin()

返回常量正向迭代器,无论array是否为const,都不能用于修改元素

cend()

返回常量正向迭代器,无论array是否为const,都不能用于修改元素

crbegin()

返回常量反向迭代器,无论array是否为const,都不能用于修改元素

crend()

返回常量反向迭代器,无论array是否为const,都不能用于修改元素

这么使用array呢,举个例子:

#include<bits/stdc++.h>
/* array容器基本操作示例 */
using namespace std;
 
void test()
{
    array<int,5> arr; 
   
    /* 通过迭代器赋值初始化 */
    array<int,5>::iterator beg = arr.begin();
    array<int,5>::iterator end = arr.end();   
    int t = 1;
   
    while(beg != end)
    {
        *beg = t;   
        ++beg;      
        ++t;
    }
   
  
    for(int i = 0; i < 5; ++i)
        cout << arr[i] << " ";
    cout << '\n';
    /*知识点,cbegin、cend等表示可读不可改 这里c的意思是const*/ 
}
 
int main(){
    test();
    return 0;
}

总结:通过创建array容器,简单使用一些array的成员函数,我们成功掌握array的基本知识。

点赞(1)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)