編譯環境:因爲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;
}
}