您的位置:首页 > 编程语言 > C语言/C++

array数组容器 C++

2016-03-27 16:42 357 查看
数组容器, 是存储数组的容器, 是C类型数组的扩充, 可以使用迭代器进行操作;

数组一般在初始化过程中赋值, 如果想替换已有的值, 一种方法是遍历所有的值, 较复杂;另一种方法是通过复制去重新赋值, 实现快速赋值;

 

当你想要一个执行时效率高,而又不想自己管理内存的时候,就用它:array

 

array和内置数组的差别在哪?为什么我们要用array?

array是为替代内置数组而设计的,它通过提供更好,更安全的接口,让数组更紧凑,效率更高(这里指编码(编写)效率,而不是执行效率)。

注:编译效率,一般还是内建类型更高,当然也不一定,不过编译效率大部分时候不重要。

//现在改用使用<array>,很方便,用起来和STL<vector>一样的

//执行效率比<vector>高,几乎和int myarray[5]效率一样

array数组容器的创建及元素的输出

方法一:
#include "stdafx.h"
#include <iostream>
#include <array>
using namespace std;

int main()
{
//--这是1维数组
array<int, 5> myarray = { 1, 2, 3, 4, 5 };
cout << "myarray=" << endl;
for (size_t n = 0; n<myarray.size(); n++)
{
cout << myarray
<< '\t';//读取array数组容器中的元素
}
cout << endl;

//当然也可以使用
cout << "myarray=" << endl;
for (size_t n = 0; n<myarray.size(); n++)
{
cout << myarray.at(n) << '\t';//读取array数组容器中的元素
}
cout << endl;
//-----------------------------------------------
//--这是2维数组,共3行2列
array<array<int, 2>, 3 > myarray2D = { 1, 2, 3, 4, 5, 6 };
//-----------------------------------------------
cout << "myarray2D=" << endl;
for (size_t m = 0; m<myarray2D.size(); m++){
for (size_t n = 0; n<myarray2D[m].size(); n++){
cout << myarray2D[m]
<< '\t';
}
cout << endl;
}
cout << endl;

return 0;
}
方法二:
#include "stdafx.h"
#include <iostream>
#include <array>
using namespace std;

int main()
{
std::array<int, 5> ia = { 1, 2, 35, 4, 55 };

for (const auto i : ia)
{
cout << i << " ";//这样表示依次输出array数组中的元素
}
cout << endl;

std::array<int, 5> ia2; // 空数组
//ia2 = {1, 2, 3, 4, 5}; //写法错误

ia2 = ia;
for (const auto i : ia2)
{
std::cout << i << " ";
}

return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++