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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

STL-容器库101--array【C11】

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

1. 原型

C11提供

template < class T, size_t N > class array;

T: 元素類型,以 array::value_type 作為別名使用;
N: array中元素大小;
  • 固定size的序列容器;
  • 初始化時, array對象不保存任何數據,除了編譯時期的行為對“元素”參數的編譯器初始化值
  • 和普通的數組一樣,從[]訪問
  • array僅僅為數組封裝了一層成員函數和全局函數,以作為標準容器使用
  • array固定容器大小,不能擴展容量;
  • 0大小的array是有效的,但是不能訪問數據。
  • STL ?中的swap操作是非常低效率的操作;
  • array容器能夠作為tuple對象(元組對象)使用。 頭文件<array>中重載了get函數來獲取array中的元素值。
使用頭文件:
  #include <array>

?1.1 成員類型:

array中的成員類型作為一些參數、或者返回值類型的別名使用,下面的是別面以及定義:

  • value_type:模板參數T
  • reference: value_type&
  • const_reference: const value_type&;
  • pointer: value_type*
  • const_pointer: const value_type*;
  • iterator: 隨機指向value_type的迭代器
  • const_iterator: 指向const value_type類型的迭代器
  • reverse_iterator:?
  • const_reverse_iterator:
  • size_type: size_t(無符號整數 unsign int
  • difference_type: ptrdiff_t(符號整形 int

1.2 成員函數

(1)Iterators

Array::begin:

Array::end:

Array::rbegin:

Array::rend;

Array::cbegin

Array::cend;

Array::crbegin

Array::crend;

?

(2)Capacity

Array::?size(): 元素數量

Array::max_size():最大容量

Array::expty(): 測試是否為空

?

(3)Element access

Array:: operator[]:
  • 返回參數n位置的reference,注意,第一個元素位置為0
  • 與 成員函數at()具有相同的行為, 但是array::at()是會檢查參數n是否越界,以及如果越界則拋出異常信號
  • 如果是const的array,則返回const_reference,否則返回reference
  • 注意:refenerence的樣式是類型array內的別名定義。

?

?

reference at ( size_type n );

const_reference at ( size_type n ) const;

  • 返回參數n位置的reference。自定檢測n是否位于有效的范圍內。并拋出out_of_rance 異常。如果n 大于size或者等于size

Array::front();

  • 返回第一個元素的reference
  • Calling this function on an empty container causes undefined behavior.

Array::back();

  • 返回最后一個元素的reference, 不像array::end()返回的是iterator
  • Calling this function on an empty container causes undefined behavior.

Array::data();

  • 返回pointer類型指向第一個元素;
  • 因為array類型是連續內存分配,因此可以對pointer進行任何偏置訪問相應位置數據;

(4)Modifiers

void Array::fill(const value_type& val):
  • 對數組中的所有元素設置參數值
void Array::swap(array& x):
  • 交換內容,兩個對象具有相同的size;
  • 調用之后,兩個對象互相交換內容;

?

?

?1.3 非成員函數重載

  get(array)

?返回array 中的第i個元素屬性引用。

?

  relational operators(array)

?

?

?

?

1.4 非成員 類的聲明

(1)tuple_element<array>

(2)tuple_size<array>

?

轉載于:https://www.cnblogs.com/icmzn/p/8642704.html

總結

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

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