日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STL容器系列文章:array容器

發布時間:2023/12/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STL容器系列文章:array容器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 頭文件

#include <array>

2. 定義

  • C11中引入,靜態數組,序列式容器。array可以看做普通數組添加了成員函數,使得數組能夠被當成標準容器來使用。容器的大小固定,無法動態擴展或收縮。定義一個array時,除了指定元素類型,還要指定容器大小
  • array以類模板的形式定義:
namespace std {template<typename T, size_t N>class array; }array<T, N> // 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}; // 方式1 array<int, 3> arr2 = arr1; // 方式2 array<int, 3> arr3(arr1); // 方式3
  • 二維數組
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();獲取第一個數據的指針,也就是數組首地址
  • 比較
/* 可以用> < ==來比較兩個array數組 */ 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反向迭代器
  • 交換swap:兩個容器元素類型和個數相同
方法說明
arr1.swap(arr2);方式1
swap(arr1, arr2);方式2
  • 其他函數
    • fill函數:arr.fill(value); // 使用value值填充數組所有元素
std::array<int, 5> arr; arr.fill(5); // fill,5個元素值都為5 for (auto i : arr) {std::cout << i << " "; }

參考文章:
array介紹
array定義和常用方法
推薦閱讀

created by shuaixio, 2021.07.25

總結

以上是生活随笔為你收集整理的STL容器系列文章:array容器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。