编译环境:因为vc++6.0不支持c++11,所以换成了vs2012
13.array c++11的新类
头文件#include<array>
定义方式array<类型,长度> 名称;
实例:
#include<iostream>
#include<array>
#include <stdlib.h>
#include<iomanip>
using namespace std;
void main()
{
array<int,5> arr={1,2,3,4,5};
for(size_t i=0;i<=4;i++)//第一种输出遍历方法
{
cout<<arr[i]<<endl;
}
for (int j:arr)//第二种遍历方法
{
cout<<j<<endl;
}
for(int j:arr)//和函数差不多,传入形参,j的改变不会改变arr
{
j=j+1;
}
for (int j:arr)//输出测试
{
cout<<j<<endl;
}
for(int &j:arr)//传入引用参数,里面改变j会改变arr
{
j++;
}
for (int j:arr)//输出测试
{
cout<<j<<endl;
}
system("pause");
}
14.用array定义二维空间,与二维数组类似
array<array<int,row>,column> arr={};
遍历:for(int const &rows:arr)
{
for (int ele:rows)
{
cout<<ele<<" ";
}
cout<<endl;
}
这里的const是指rows在下面的循环里不会改变。
for里的int也可以换成auto,自动变成需要的类型。
15.vector与array相似,定义方式:vector<int> vec(5);int是类型,5是大小
可以用vector.push_back()来在最后面增加空间
#include<iostream>
#include<stdlib.h>
#include<vector>
using namespace std;
void outputvector(const vector<int> &);//自定义的输出函数
void inputvector(vector<int>&);//自定义的输入函数
void main()
{
vector<int> interger1(5);//vector定义
inputvector(interger1);
outputvector(interger1);
cout<<"vector size is"<<interger1.size()<<endl;//vector.size():vector大小
interger1.push_back(7);//在vector最后插入一个7
cout<<"vector size is"<<interger1.size()<<endl;//vector大小增1
system("pause");
}
void outputvector(const vector<int> &vec)
{
for(auto item:vec)
{
cout<<item<<" ";
}
cout<<endl;
}
void inputvector(vector<int>& vec)
{
for(int &item:vec)
{
cin>>item;
}
}