#include <array>
array是静态数组,在栈上,不可以变长
vector比array更常用
不需要变长,容量较小,用array
需要变长,容量较大,用vector
1 array
1 array新数组
//std::array<数组元素类型, 数组列数> 一维数组变量名
std::array<double, 4> dbnew1 = { 10.1,10.2,10.3,10.4 };//新数组
std::array<double, 4> dbnew2 = dbnew1;//新版数组可以实现整体赋值,适合于操作对象数组
#include <iostream>
#include <array>
using namespace std; void main()
{
double db[] = { 1.1,2.2,3.3,4.4 };//旧数组 //std::array<数组元素类型, 数组元素个数> 一维数组变量名
std::array<double, > dbnew1 = { 10.1,10.2,10.3,10.4 };//新数组 std::array<double, > dbnew2 = dbnew1;//新版数组可以实现整体赋值,适合于操作对象数组 for (int i = ; i < ; i++)//打印
{
std::cout << db[i] << " ";
}
std::cout << std::endl; for (int i = ; i < ; i++)//打印
{
std::cout << dbnew1[i] << " ";
}
std::cout << std::endl; for (int i = ; i < ; i++)//打印
{
std::cout << dbnew2[i] << " ";
} system("pause");
}
使用C++风格数组不需要管理内存
array注意不要栈溢出
array适用于任何类型
array二维数组,三维数组
//std::array<数组元素类型, 数组列数> 一维数组变量名
//std::array<std::array<数组元素类型, 数组行数>, 数组列数> 二维数组变量名
#include <iostream>
#include <array>
using namespace std; void main()
{
//std::array<数组元素类型, 数组列数> 一维数组变量名
std::array<int, >myint1 = { ,,,, };//一维数组
std::array<int, >myint2 = { ,,,, };//一维数组
std::array<int, >myint3 = { ,,,, };//一维数组 //std::array<std::array<数组元素类型, 数组行数>, 数组列数> 二维数组变量名
std::array<std::array<int, >, >myint = { myint1,myint2,myint3 };//内嵌数组,二维数组
std::array<std::array<int, >, >myinta = { ,,,,,,,,,,,,,, };//二维数组 std::array<std::array<std::array<int, >, >, >myintb = { };//三维数组 for (int i = ; i < ; i++)//打印二维数组打印
{
for (int j = ; j < ; j++)
{
std::cout << " " << myint[i][j];
}
std::cout << std::endl;
}
std::cout << std::endl; for (int i = ; i < ; i++)//打印二维数组打印
{
for (int j = ; j < ; j++)
{
std::cout << " " << myinta[i][j];
}
std::cout << std::endl;
}
std::cout << std::endl; for (int i = ; i < ; i++)//打印三维数组
{
for (int j = ; j < ; j++)
{
for (int k = ; k < ; k++)
{
std::cout << " " << myintb[i][j][k];
}
std::cout << std::endl;
}
std::cout << std::endl;
} system("pause");
}
迭代器循环遍历数组
从头到尾iterator
从尾到头reverse_iterator
#include <iostream>
#include <array>
using namespace std; void main()
{
array<int, > myint = { ,,,, }; array<int, >::iterator ibegin, iend;//迭代器
ibegin = myint.begin();//数据起始点
iend = myint.end();//结束 for (; ibegin != iend; ibegin++)//从头到尾
{
cout << *ibegin << endl;
} array<int, >::reverse_iterator rbegin, rend;//迭代器
rbegin = myint.rbegin();//数据起始点
rend = myint.rend();//结束 while (rbegin != rend)//从尾到头
{
cout << *rbegin << endl;
rbegin++;
} system("pause");
}
//当构造函数带有参数的情况下,如果要建立类的数组,这时候必须要用C++风格数组
#include <iostream>
#include <array> class classobj
{
public:
int num;
explicit classobj(int data)//构造函数需要参数
{
this->num = data;
std::cout << "被构造" << num << std::endl;
}
~classobj()
{
std::cout << "被销毁" << num << std::endl;
}
}; void run()
{
classobj obj();//创建对象必须有合适的构造函数 classobj *p = new classobj();//创建指针 std::array <classobj, >myarray = { obj,*p };//当构造函数带有参数的情况下,如果要建立类的数组,这时候必须要用C++风格数组
} void main()
{
run(); system("pause");
}
#include <array>的更多相关文章
- 浅谈JSP中include指令与include动作标识的区别
JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...
- Entity Framework 6 Recipes 2nd Edition(13-9)译 -> 避免Include
问题 你想不用Include()方法,立即加载一下相关的集合,并想通过EF的CodeFirst方式实现. 解决方案 假设你有一个如Figure 13-14所示的模型: Figure 13-14. A ...
- error RC1015: cannot open include file 'afxres.h' 解决办法
在为WindowsPhone8程序添加本地化的过程中遇到这个问题: 问题原因就是afxres.h文件缺失,下载它,放到VS安装目录下的VS\include目录下就可以了(选择目录的时候注意对应对版本) ...
- Mybatis常用总结:参数,返回,执行sql,include等
1.参数注入1.1用#{0},#{1}的形式,0代表第一个参数,1代表第二个参数 public List<RecordVo> queryList(String workerId, Inte ...
- jsp中的@include与jsp:include区别详解
1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...
- JSP中编译指令include与动作指令include的区别
include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改, 否则视为已被修改.由于被包含的文件是在编译时才插入的,因此如 ...
- C/C++ 中的include
当需要使用已有的方法或库时, 可以将它们的头文件#include进来. #include会在preprocess过程中被替换成它包含的代码. 头文件中包含了需要使用的函数/变量的声明. 当然声明与定义 ...
- 织梦多语言站点,{dede:include filename=''/}引入问题
织梦模板include插入非模板目录文件出现"无法在这个位置找到"错误的解决办法 以下是dede V55_UTF8 查dede include标签手册 (3) include 引入 ...
- PHP 站点相对包含,路径的问题解决方法(include,require)
以前看了,很多框架,基本上很少使用相对路径包含.而一般很多做php web站点,喜欢用相对路径. 认为这样,无论目录放到那里. 只要跟另外目录关系一致.那么就不会出现问题.如果一个站点,一般都认为,如 ...
- 如何让include标签包裹的布局置于屏幕最下方?
如何让一个Layout 始终在屏幕的下方 我想让<include layout="@layout/bottom" />一直在屏幕下,怎么做? 1.相对布局中用属性 a ...
随机推荐
- 联想企业网盘:SaaS服务集群化持续交付实践
1 前言 当代信息技术飞速发展,软件和系统的代码规模都变得越来越大,而且组件众多,依赖繁复,每次新版本的发布都仿佛是乘坐一次无座的绿皮车长途夜行,疲惫不堪.软件交付是一个复杂的工程,涉及到软 ...
- android4.0 禁止横竖屏切换使用 android:configChanges="orientation|keyboardHidden"无效
android4.0 禁止横竖屏切换使用 android:configChanges="orientation|keyboardHidden"无效 在之前的版本中都是在Man ...
- jQuery背景跟随鼠标移动的网页导航
首页 PSD模板 CSS模板 特效插件 源码下载 酷站欣赏 建站资源 建站教程 心境之旅 在线留言 设为首页 加入收藏 我要投稿 联系站长 Search 首页 PSD模板 CSS模板 特效插件 ...
- 谷歌page speed 安装使用及页面问题详解
原文地址:http://wenku.baidu.com/view/b0a61f3ebcd126fff7050b40.html 谷歌page speed 安装使用及页面问题详解 谷歌page speed ...
- poj1503---大数加法
先讲一种错误的做法:WA了n次,大神一定帮我看一下//看到有说数组大小开到250,我改了之后还是不//思路是将arr这个数组的每一行附上输入的值,然后求每列所有数之和,当然进位 //maxlen记录这 ...
- 可用的CSS文字两端对齐
最近在工作项目中接触到Web界面设计的问题,要实现文字两端对齐的效果.在网上搜索了一下,用的都是类似的技巧: text-align:justify;text-justify:inter-ideogra ...
- 利用margin代替小图标的绝对定位;使代码更简洁
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 怎样在小方框上打对号 小方框内打对勾 word 方框打对勾
在word中做选择时,非常多人遇到须要在小方框上打对勾而不知怎样做,现将可行的各种方法总结例如以下: 1:直接找到一个做好的,保存为图片,在须要的时候插入它: 2:插入文本框,然后边框选择为实线,在文 ...
- uva 10051 Tower of Cubes(DAG最长路)
题目连接:10051 - Tower of Cubes 题目大意:有n个正方体,从序号1~n, 对应的每个立方体的6个面分别有它的颜色(用数字给出),现在想要将立方体堆成塔,并且上面的立方体的序号要小 ...
- iOS开发中视图相关的小笔记:push、modal、popover、replace、custom
在storyboard中,segue有几种不同的类型,在iphone和ipad的开发中,segue的类型是不同的. 在iphone中,segue有:push,modal,和custom三种不同的类型, ...