在C++11發布後,提供了新的內建類別–array樣板類別
增加了更多函數,多了排列功能,提供程式開發者更多方便性
需要載入 <array> 標頭檔
C++11新增功能
C++11資訊 編譯器
基本資料
- 元素數量固定
- 相同型態
- a[0]……a[n-1]
宣告
array <型態,元素數量> 名稱;
數量不得為變數
Ex:
#include <iostream> #include <array> //引入 <array> 標頭檔 using namespace std; int main(){ array<int,10> str; //建立包含10個整數型態的array物件 }<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>
設值
善用
物件名稱.size();
Ex:
#include <iostream> #include <array> //引入 <array> 標頭檔 using namespace std; int main(){ array<int,10> str; //將物件str設值 for(size_t i=0;i<str.size();i++){ str[i]=i; } //印出物件str元素 for(size_t i=0;i<str.size();i++){ cout << str[i] << endl; } }
成員函數
取得array物件大小:
size();
取得array物件在某位置的元素值:
at(元素位置);
取得array物件最前面元素位址:
begin(物件名稱);
取得array物件最後面元素位址:
end(物件名稱);
排列array物件內元素:
需要載入<algorithm>標頭檔
(依照ASCII值排列)
sort(物件名稱.begin(),物件名稱.end());
Ex:
#include <iostream> #include <array> //引入 <array> 標頭檔 #include <algorithm> ////引入 <algorithm> 標頭檔 using namespace std; int main(){ array <int,10> str; cout << str.size() << endl; //取得物件str大小 str={10,9,8,7,6,5,4,3,2,1}; //取出第(4+1)個值 (從0開始) cout << str.at(4) << endl; cout << str.begin() << endl; //取得最前面元素位址 cout << str.end() << endl; //取得最後面元素位址 sort(str.begin(),str.end()); //將str物件元素排序 for(size_t i=0;i<str.size();i++){ cout << str[i] << endl; } }
進階範例
不需要確認陣列大小:
#include <iostream> #include <array> //引入 <array> 標頭檔 using namespace std; int main(){ array <int,6> items={1,2,3,4,5,6}; for(int item:items) cout << item; }
多維陣列:
#include <iostream> #include <array> //引入 <array> 標頭檔 using namespace std; int main(){ array<array<int,6>,4> str; //產生6*4陣列 }<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>