[類別] Array 樣板類別

在C++11發布後,提供了新的內建類別–array樣板類別
增加了更多函數,多了排列功能,提供程式開發者更多方便性

需要載入 <array> 標頭檔
C++11新增功能
C++11資訊 編譯器

基本資料

  • 元素數量固定
  • 相同型態
  • a[0]……a[n-1]
 
 
宣告
 
array <型態,元素數量> 名稱;
數量不得為變數
Ex:

[code language=”cpp”]
#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>
[/code]

設值
善用
物件名稱.size();

Ex:

[code language=”cpp”]
#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;

}

}
[/code]

 

成員函數

取得array物件大小:

size();

取得array物件在某位置的元素值:

at(元素位置);

取得array物件最前面元素位址:

begin(物件名稱);

取得array物件最後面元素位址:

end(物件名稱);
排列array物件內元素:
需要載入<algorithm>標頭檔
(依照ASCII值排列)

sort(物件名稱.begin(),物件名稱.end());

Ex:

[code language=”cpp”]
#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;

}

}
[/code]

 

進階範例
不需要確認陣列大小:

[code language=”cpp”]
#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;

}
[/code]

多維陣列:

 









[code language=”cpp”]
#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>
[/code]

有疑問? 留個言吧!

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料