C++11之array原理及使用
来源:互联网 发布:unity3d 骨骼控制 编辑:程序博客网 时间:2024/06/06 05:28
C++11中ze了array,代替原来C语言中的数组。
同时,也避免了动态数组new和delete的使用,内存自动管理。
而且,执行效率比vector高。
一 定义
在array头文件中定义:
如果我们自己来写一个array模板类的话,大概应该想这个样子:
二 一维数组
1 声明
2 访问
例如:取数组的第一个元素
3 遍历
三 二维数组
1 声明
2 访问
例如:还是取第一个元素
3 遍历
可以看到,二位数组实际上也是一个一维数组,其元素是二位数组
同时,也避免了动态数组new和delete的使用,内存自动管理。
而且,执行效率比vector高。
一 定义
在array头文件中定义:
template< class T, std::size_t N > struct array;
如果我们自己来写一个array模板类的话,大概应该想这个样子:
template <typename T, int n>class myArray{ public: myArray() {a = new T[n];} ~myArray() {delete[] a;} T& operator[](int i) {return *(a+i);} private: T* a;};
二 一维数组
1 声明
array<int, 5> arr1 = {1, 2, 3, 4, 5};
或者
array<int, 5> arr1{{1, 2, 3, 4, 5}};
2 访问
例如:取数组的第一个元素
int n1 = arr1[0];int n2 = arr1.at(0);
3 遍历
for(size_t i = 0; i < arr1.size(); ++i){cout << arr1[0]<< endl;// cout << arr1.at(0)<< endl;}
三 二维数组
1 声明
array<array<int, 3>, 2> arr2d = {11,12,13,21,22,23};
2 访问
例如:还是取第一个元素
int n3 = arr2d[0][0];
3 遍历
for(size_t i = 0; i < arr2d.size(); ++i){for(size_t j= 0; j < arr2d[i].size(); ++j){cout << arr2d[i][j] << '\t';}cout << endl;}
可以看到,二位数组实际上也是一个一维数组,其元素是二位数组
0 0
- C++11之array原理及使用
- [C#]Array.Sort()排序的原理
- array 及 vector 的使用
- C#:System.Array简单使用
- c标签之foreach介绍及使用
- php之array的使用
- java之数组Array使用
- 理解高并发(11).线程通信之_join使用及原理
- Struts2之拦截器原理分析及使用-上
- Struts2之拦截器原理分析及使用-中
- Struts2之拦截器原理分析及使用-再中
- Struts2之拦截器原理分析及使用-下
- android之Futuretask、Timer、AsyncTask的使用及原理解析
- Java NIO使用及原理之--总概述
- Java NIO使用及原理之--缓冲器buffer(1)
- Java NIO使用及原理之--缓冲器buffer(2)
- Java NIO使用及原理之--选择器Seclector
- 机器学习之使用sklearn实现决策树及原理分析
- linux多线程编程,你还在用sleep么?用pthread_cond_timedwait吧
- MapReduce的顺序式依赖关系组合式链式
- C++ 类的静态成员注意事项
- C++/C移位操作
- 简单的动画头尾式的使用
- C++11之array原理及使用
- 软件欢迎界面
- cocos2d-x 3.3 如何调用Scale9Sprite
- rails 查看所有命令
- OpenGL 渲染管线理论
- 使用XmlTextWriter生成XML文件的方法
- 问题:Listview中FooterView的几个问题
- xml文件中,引号嵌套的问题
- 防止Session丢失