本文介绍了“如何使用C 11的数组容器”的知识。很多人在实际案例的操作中会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!
内置数组
数组是C语言中最常用的数据结构之一,但使用起来比较麻烦。一是不管理规模,二是不检查跨境操作。虽然C/C也提供了一些解决方案,但总是不够完善。例如,以下代码:
int ary[5];
memset(ary,0,sizeof(ary));
无符号整数I=0;
while(isizeof(ary)/sizeof(ary[0])){ 0
ary[I]=I;
我;
}对于元素个数,数组中的元素个数由sizeof计算,是否越界只能由程序员自己来保证。
array容器
C 11中引入了数组容器,基本解决了内置数组的问题:
std:arrayint,5 c11ary
c11 ary . fill(0);
无符号整数I=0;
while(ic11 ary . size()){ 0
c11 ary . at(I)=I;
我;
}
在这段代码中,
填充方法用于实现数据填充。
使用size方法获取数组的大小。
虽然at(i)方法实现了带越界检查的读写。
没有免费的误餐
为了了解数组容器的性能,我们编写了以下代码来测试写入效率:
DWORD begin=GetTickCount();
std:arrayint,10000 ary
//int ary[10000];
//STD :矢量元(10000,0);
STD : cout sizeof(ary)STD : endl;
for(int s=0;10000新元;s){ 0
for(int I=0;我10000;I){ 0
ary[I]=s I;
}
}
DWORD end=GetTickCount();
STD : cout end-begin STD : endl;代码分别使用数组容器、内置数组容器和向量容器进行确认,结果如下:
首先是占用空间的比较结果:数组容器和内置数组占用相同的内存空间,向量只有12字节,所以用来保存数据的真实内容应该从堆中获取。
写入速度对比:内置数组最快,向量容器次之,数组容器最慢。
但是从阵列和内置阵列的对比来看,牺牲了一些性能来换取安全性和便利性。但是向量的效率超过了数组,这是令人惊讶的。
这里介绍一下“如何使用C 11的数组容器”的内容。感谢阅读。如果你想了解更多的行业,可以关注网站。边肖将为您输出更多高质量的实用文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/114480.html