四时宝库

程序员的知识宝库

C++ array应用(c++array数组)

大家好我是发哥,本期说说C++ array 容器

array 容器是 C++ 11 标准中新增的序列容器,简单地理解,它就是在 C++ 普通数组的基础上,添加了一些成员函数和全局函数。在使用上,它比普通数组更安全,且效率并没有因此变差。

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

以下简单介绍array的方法:

begin() 返回指向容器中第一个元素的随机访问迭代器。

end() 返回指向容器最后一个元素之后一个位置的随机访问迭代器,通常和 begin() 结合使用。

rbegin() 返回指向最后一个元素的随机访问迭代器。

rend() 返回指向第一个元素之前一个位置的随机访问迭代器。

cbegin() 和 begin() 功能相同,只不过在其基础上增加了 const 属性,不能用于修改元素。

cend() 和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。

crbegin() 和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。

crend() 和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。

size() 返回容器中当前元素的数量,其值始终等于初始化 array 类的第二个模板参数 N。

max_size() 返回容器可容纳元素的最大数量,其值始终等于初始化 array 类的第二个模板参数 N。

empty() 判断容器是否为空,和通过 size()==0 的判断条件功能相同,但其效率可能更快。

at(n) 返回容器中 n 位置处元素的引用,该函数自动检查 n 是否在有效的范围内,如果不是则抛出 out_of_range 异常。

front() 返回容器中第一个元素的直接引用,该函数不适用于空的 array 容器。

back() 返回容器中最后一个元素的直接应用,该函数同样不适用于空的 array 容器。

data() 返回一个指向容器首个元素的指针。利用该指针,可实现复制容器中所有元素等类似功能。

fill(val) 将 val 这个值赋值给容器中的每个元素。

array1.swap(array2) 交换 array1 和 array2 容器中的所有元素,但前提是它们具有相同的长度和类型。

下面简单通过例子,对上面的方法进行使用。

#include <iostream>

#include <string>

#include <array>

using namespace std;

int main()

{

std::array<int, 10> array_num{};

//初始化 array_num 容器为 {0,1,2,3}

for (int i = 0; i < array_num.size(); i++)

{

array_num.at(i) = i + 30;

}

//使用 get() 重载函数输出指定位置元素

cout << get<3>(array_num) << endl;

//如果容器不为空,则输出容器中所有的元素

if (!array_num.empty())

{

for (auto val = array_num.begin(); val < array_num.end(); val++)

{

cout << *val << " ";

}

}


return 0;

}

运行结果如下截图



今天就说到这,具体深入用法,可以查阅相关资料,继续研究,谢谢你的关注,记得点赞、评论和关注哦,后期会有更好的优秀作品呈现,你的支持是我创建继续创造优秀作品的动力。

明天早上六点我们继续再聊。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接