C++ 补充 & C++ 11 - array容器用法

    技术2022-07-11  119

    C++11 新增容器 - array

    array容器概念

    array 容器是 C++ 11 标准中新增的序列容器,简单地理解,它就是在 C++ 普通数组的基础上,添加了一些成员函数和全局函数。

    array是将元素置于一个固定数组中加以管理的容器。

    array可以随机存取元素,支持索引值直接存取, 用[]操作符或at()方法对元素进行操作,也可以使用迭代器访问

    不支持动态的新增删除操作 array可以完全替代C语言中的数组,使操作数组元素更加安全! #include array

    array特点

    array 容器的大小是固定的,无法动态的扩展或收缩,这也就意味着,在使用该容器的过程无法增加或移除元素而改变其大小,它只允许访问或者替换存储的元素。

    STL 还提供有可动态扩展或收缩存储空间的 vector 容器

    array对象的构造

    array采用模板类实现,array对象的默认构造形式 array<T,int> arrayT; //T为存储的类型, 为数值型模板参数

    //构造函数 array<int, 5> a1; //一个存放5个int的array容器 array<float, 6> a2; //一个存放6个float的array容器 array<student, 7> a3; //一个存放7个student的array容器

    array的赋值

    array 的赋值 a1.assign(0); //玩法一 改变array中所有元素(注:将被废弃,不推荐使用) a1.fill(666); //玩法二 用特定值填充array中所有元素 array<int, 4> test={1, 2, 3, 4};// 玩法三 定义时使用初始化列表 array<int, 4> test; test={1,2,3,4}; //玩法四 定义后使用列表重新赋值 array<int, 4> a1,a2; a1={1,2,3,4}; a2 = a1;//玩法五,赋值运算 a1.swap(a2); //玩法六 和其它array进行交换

    array的大小

    array.size(); //返回容器中元素的个数 array.empty(); //判断容器是否为空,逗你玩的,永远为 false array.max_size(); //返回容器中最大元素的个数,同size()。

    array的数据存取

    第一 使用下标操作 a1[0] = 100; 第二 使用at 方法 如: a1.at(2) = 100; 第三 接口返回的引用 a1.front() 和 a1.back() 注意: 第一和第二种方式必须注意越界

    array 迭代器访问

    array.begin(); //返回容器中第一个数据的迭代器。 array.end(); //返回容器中最后一个数据之后的迭代器。 array.rbegin(); //返回容器中倒数第一个元素的迭代器。 array.rend(); //返回容器中倒数最后一个元素的后面的迭代器。 array.cbegin(); //返回容器中第一个数据的常量迭代器。 array.cend(); //返回容器中最后一个数据之后的常量迭代器。 array.crbegin(); //返回容器中倒数第一个元素的常量迭代器。 array.crend(); //返回容器中倒数最后一个元素的后面的常量迭代器。 array<int, 5> arrayInt = {1, 2, 3, 4, 5}; //顺序输出 1 2 3 4 5 for(array<int, 5>::iterator it=arrayInt .begin(); it!=arrayInt .end(); ++it) { int elem = *it; cout << elem; //或直接使用cout << *it } set.rbegin()与set.rend()。略。

    结语:

    时间:2020-07-01

    Processed: 0.009, SQL: 9