#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 ...
随机推荐
- web前端开发常用工具
http://www.gbin1.com/technology/javautilities/20120806-resource-for-front-end-developer/ 冒泡样式 http:/ ...
- Windows 打开防火墙上的指定端口
第一步: 控制面板-->打开防火墙 第二步: 高级设置 第三步: 入站规则--->新建规则 第四步: 第五步: 第六步: 第七步: 第八步:
- 如何修改被编译后DLL文件
原文 http://www.cnblogs.com/wujy/p/3275855.html 我们平时在工作中经常会遇到一些已经被编译后的DLL,而且更加麻烦是没有源代码可以进行修改,只能针对这个DLL ...
- iOS 倒计时
// // RootViewController.m // MyTimerDemo // // Created by huluo on 1/21/14. // Copyright (c) 2014 b ...
- Spring、Bean 的作用域
Singleton作用域(默认) 当一个bean的作用域为singleton,那么Spring Ioc容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则 ...
- 日本語N1文法まとめ
1.v连用形+ものの:虽然~但是(201212-32) -(の)かというと/かといえば(201412-38)a动词ます辞書形・た形/イ形+~ な形語幹/名+~a,"至于是否・・・・・・&qu ...
- oracle数据库导出并重新导入
斌斌 (给我写信) 原创博文(http://blog.csdn.net/binbinxyz),转载请注明出处! 一.导出数据库 1.将数据库TEST完全导出,用户名scott密码tiger,导出到D: ...
- Codeforces Round #258 (Div. 2/C)/Codeforces451C_Predict Outcome of the Game(枚举)
解题报告 http://blog.csdn.net/juncoder/article/details/38102391 题意: n场比赛当中k场是没看过的,对于这k场比赛,a,b,c三队赢的场次的关系 ...
- node.js(八) 有趣的东西才开始哦
### Express介绍 npm提供了大量的第三方模块,其中不乏许多Web框架,比如我们本章节要讲述的一个轻量级的Web框架 ——— Express. Express是一个简洁.灵活的node.js ...
- getDeclaredFields()和getFields()
getFields()获得某个类额的所有的公共(public)的字段,包括父类. getDeclaredFields()获得某个类的所有申明的字段,即包括public.private和proteced ...