array数组容器 C++
2016-03-27 16:42
357 查看
数组容器, 是存储数组的容器, 是C类型数组的扩充, 可以使用迭代器进行操作;
数组一般在初始化过程中赋值, 如果想替换已有的值, 一种方法是遍历所有的值, 较复杂;另一种方法是通过复制去重新赋值, 实现快速赋值;
当你想要一个执行时效率高,而又不想自己管理内存的时候,就用它:array
array和内置数组的差别在哪?为什么我们要用array?
array是为替代内置数组而设计的,它通过提供更好,更安全的接口,让数组更紧凑,效率更高(这里指编码(编写)效率,而不是执行效率)。
注:编译效率,一般还是内建类型更高,当然也不一定,不过编译效率大部分时候不重要。
//现在改用使用<array>,很方便,用起来和STL<vector>一样的
//执行效率比<vector>高,几乎和int myarray[5]效率一样
array数组容器的创建及元素的输出
数组一般在初始化过程中赋值, 如果想替换已有的值, 一种方法是遍历所有的值, 较复杂;另一种方法是通过复制去重新赋值, 实现快速赋值;
当你想要一个执行时效率高,而又不想自己管理内存的时候,就用它: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++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性