千家信息网

C++11的array容器怎么使用

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容介绍了"C++11的array容器怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!内置
千家信息网最后更新 2025年12月03日C++11的array容器怎么使用

本篇内容介绍了"C++11的array容器怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

内置数组

数组是C语言中最常用的数据结构之一,但是它的使用比较麻烦。首先是大小没有管理,二是越界操作没有检查。虽然C/C++也提供了一些解决办法,但总是不够完美。例如下面的代码:

int ary[5];
memset(ary, 0, sizeof(ary));
unsigned int i = 0;
while(i ary[i] = i;
i++;
}

对于元素的个数通过sizeof计算数组中元素的个数,是否越界,就只能靠程序员自己来保证了。

array容器

C++11中引入了array容器,基本上解决了内置数组的问题:

std::array c11ary;
c11ary.fill(0);
unsigned int i = 0;
while(i c11ary.at(i) = i;
i++;
}


这段代码中,

  1. 使用fill方法实现了数据填充。

  2. 使用size方法取得数组的大小。

  3. 虽然at(i)方法实现带有越界检查的读写。

没有免费的误餐

为了了解array容器的性能,我们编写下面的代码来测试写入效率:

DWORD begin = GetTickCount();
std::array ary;
//int ary[10000];
//std::vector ary(10000,0);
std::cout << sizeof(ary) << std::endl;
for(int s = 0; s < 10000; s++){
for(int i = 0; i < 10000; i++){
ary[i] = s + i;
}
}
DWORD end = GetTickCount();
std::cout << end - begin << std::endl;

代码分别使用array容器,内置数组,vector容器进行了确认,结果如下:

首先是占用空间的比较结果:array容器和内置数组占用相同的内存空间,vector只有12Byte,真正用于保存数据的内容应该是从堆中获取的。

写入速度的比较结果:内置数组的速度最快,vector容器次之,array容器最慢。

但从array和内置数组的比较结果来讲,牺牲了一些性能,换来了安全和便利。但是vector的效率超过array,让人很意外。

"C++11的array容器怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

容器 数组 代码 结果 内容 数据 方法 个数 元素 大小 性能 效率 更多 知识 空间 速度 面的 检查 实用 最快 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 演示服务器 徐汇区信息软件开发代理品牌 软件开发研究生平均工资 与数据库备份有关的文件 隔离点武汉网络安全学院 会议录播软件开发 内蒙古加工软件开发公司 福建心晟互联网科技有限公司 企业网络安全问题被处罚 开软件开发发票的名称 数据在服务器能开挂吗 体检结果用数据库表示 2021年网络安全宣传周校园日 芬芳互联网科技酱 易客互联网科技有限公司 gp数据库 数据 衡水互易网络技术有限公司 网络安全ppt课件小学生 网络安全包括哪几种安全 新闻计算机网络技术好找工作吗 广东省网络技术有限公司待遇 网络安全工作会议亮点 企业文档管理系统服务器 净网2021网络安全吗 华为概念的网络安全股有哪些 曙光服务器软件工程师 吕梁网络技术推荐厂家 联想对服务器的请求已被扩展程序阻止 关于网络安全的广播稿子 虹口区常规软件开发定制哪个好
0