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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

1. 原型

C11提供

template < class T, size_t N > class array;

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

?1.1 成員類型:

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

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

1.2 成員函數(shù)

(1)Iterators

Array::begin:

Array::end:

Array::rbegin:

Array::rend;

Array::cbegin

Array::cend;

Array::crbegin

Array::crend;

?

(2)Capacity

Array::?size(): 元素?cái)?shù)量

Array::max_size():最大容量

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

?

(3)Element access

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

?

?

reference at ( size_type n );

const_reference at ( size_type n ) const;

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

Array::front();

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

Array::back();

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

Array::data();

  • 返回pointer類型指向第一個(gè)元素;
  • 因?yàn)閍rray類型是連續(xù)內(nèi)存分配,因此可以對(duì)pointer進(jìn)行任何偏置訪問相應(yīng)位置數(shù)據(jù);

(4)Modifiers

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

?

?

?1.3 非成員函數(shù)重載

  get(array)

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

?

  relational operators(array)

?

?

?

?

1.4 非成員 類的聲明

(1)tuple_element<array>

(2)tuple_size<array>

?

轉(zhuǎn)載于:https://www.cnblogs.com/icmzn/p/8642704.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。