生活随笔
收集整理的這篇文章主要介紹了
STL容器系列文章:array容器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 頭文件
#include <array>
2. 定義
- C11中引入,靜態數組,序列式容器。array可以看做普通數組添加了成員函數,使得數組能夠被當成標準容器來使用。容器的大小固定,無法動態擴展或收縮。定義一個array時,除了指定元素類型,還要指定容器大小。
- array以類模板的形式定義:
namespace std
{template<typename T
, size_t N
>class array;
}array
<T
, N
>
3. 對象創建
方法說明
| array<int, 3> arr = {1, 2, 3}; | 定義類型為int,大小為3的數組并初始化為{1, 2, 3} |
| array<int, 10> arr = {1, 2, 3}; | 前三個元素賦值,后7個元素為0 |
| array<double, 10> arr = {1.5, 2.0, 1.0}; | double類型數組,前三個元素賦值,后7個元素為0.0 |
| array<int, 3> arr = {0}; | 所有元素初始化為0 |
| array<int, 3> arr; | 未初始化,是垃圾值,不推薦 |
| array<int, 3> arr = {}; | 未初始化,比上一種方式好 |
| array<int, 0> arr; | 合法定義,size為0,元素為某個未知的值 |
| array<int, 3> arr({1, 2, 3}); | 定義非法!沒有定義這種類型的拷貝構造函數 |
array
<int, 3> arr1
= {1, 2, 3};
array
<int, 3> arr2
= arr1
;
array
<int, 3> arr3(arr1
);
array
<array
<int, 5>, 5> mat1
= {1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,
};
4. 常用方法
方法說明
| arr.size() | 容器元素個數 |
| arr.max_size() | 容器所能容納的最大元素個數 |
| arr.empty() | 判斷容器是否為空 |
方法說明
| array<int, 3> arr = {1, 2, 3}; arr[1]; 或 arr.at(1); | []或at()方式訪問 |
| arr.front(); arr.back(); | front()和back()不要為空時訪問首尾元素 |
| arr.data(); | 獲取第一個數據的指針,也就是數組首地址 |
std
::array
<int,5> a
= {10, 20, 30, 40, 50};
std
::array
<int,5> b
= {10, 20, 30, 40, 50};
if (a
== b
) {std
::cout
<< "a == b" << std
::endl
;
}
方法說明
| begin()/end() | 正向迭代器 |
| rbegin()/rend() | 反向迭代器 |
| cbegin()/cend() | const正向迭代器 |
| crbegin()/crend() | const反向迭代器 |
方法說明
| arr1.swap(arr2); | 方式1 |
| swap(arr1, arr2); | 方式2 |
- 其他函數
- fill函數:arr.fill(value); // 使用value值填充數組所有元素
std
::array
<int, 5> arr
;
arr
.fill(5);
for (auto i
: arr
) {std
::cout
<< i
<< " ";
}
參考文章:
array介紹
array定義和常用方法
推薦閱讀
created by shuaixio, 2021.07.25
總結
以上是生活随笔為你收集整理的STL容器系列文章:array容器的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。