最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C++容器 I 向量 I Basic

2022-03-14 22:39 作者:星淵龍騎  | 我要投稿

class template <vector> std::vector

https://www.cplusplus.com/reference/vector/vector/

模板參數(shù)【Template parameters】

T

元素的類型。

只有保證T在移動(dòng)時(shí)不會(huì)拋出,實(shí)現(xiàn)才能優(yōu)化以移動(dòng)元素,而不是在重新分配期間復(fù)制它們。

別名為成員類型vector::value_type。

Alloc

用于定義存儲(chǔ)分配模型的分配器對(duì)象的類型。默認(rèn)情況下,使用分配器類模板,它定義了最簡(jiǎn)單的內(nèi)存分配模型,并且與值無關(guān)。

別名為成員類型vector::allocator_type。

向量【Vector】

向量是序列容器,表示可以改變大小的數(shù)組。

與數(shù)組一樣,向量使用連續(xù)的存儲(chǔ)位置存儲(chǔ)其元素,這意味著也可以使用指向其元素的常規(guī)指針上的偏移量來訪問其元素,其效率與數(shù)組中的相同。但與數(shù)組不同,它們的大小可以動(dòng)態(tài)變化,其存儲(chǔ)由容器自動(dòng)處理。

在內(nèi)部,向量使用一個(gè)動(dòng)態(tài)分配的數(shù)組來存儲(chǔ)它們的元素。當(dāng)插入新元素時(shí),可能需要重新分配該數(shù)組,以便增大其大小,這意味著分配一個(gè)新數(shù)組并將所有元素移動(dòng)到該數(shù)組中。就處理時(shí)間而言,這是一項(xiàng)相對(duì)昂貴的任務(wù),因此,向量不會(huì)在每次將元素添加到容器時(shí)重新分配。

相反,載體容器可能會(huì)分配一些額外的存儲(chǔ)空間,以適應(yīng)可能的增長(zhǎng),因此容器的實(shí)際容量可能會(huì)大于嚴(yán)格需要的存儲(chǔ)空間,以容納其元素(即其大小)。庫(kù)可以實(shí)現(xiàn)不同的增長(zhǎng)策略,以平衡內(nèi)存使用和重新分配,但在任何情況下,重新分配只應(yīng)以對(duì)數(shù)增長(zhǎng)的大小間隔進(jìn)行,以便在向量末尾插入單個(gè)元素時(shí),可以提供攤銷的恒定時(shí)間復(fù)雜度(參見push_back)。

因此,與數(shù)組相比,向量消耗更多內(nèi)存,以換取以高效方式管理存儲(chǔ)和動(dòng)態(tài)增長(zhǎng)的能力。

與其他動(dòng)態(tài)序列容器(deques、list和forward_list)相比,向量非常高效地訪問其元素(就像數(shù)組一樣),并且相對(duì)高效地從其末端添加或刪除元素。對(duì)于涉及在端點(diǎn)以外的位置插入或刪除元素的操作,它們的性能比其他操作差,并且與列表和轉(zhuǎn)發(fā)列表相比,迭代器和引用的一致性較差。

容器屬性【Container properties】

序列【Sequence】

序列容器中的元素按嚴(yán)格的線性序列排序。單個(gè)元素通過它們?cè)谠撔蛄兄械奈恢脕碓L問。

動(dòng)態(tài)數(shù)組【Dynamic array】

允許直接訪問序列中的任何元素,即使是通過指針?biāo)阈g(shù),并在序列末尾相對(duì)快速地添加/刪除元素。

分配器感知【Allocator-aware】

容器使用分配器對(duì)象動(dòng)態(tài)處理其存儲(chǔ)需求。

成員類型【Member types】

成員函數(shù)【Member functions】

(constructor)

構(gòu)造向量(公共成員函數(shù))

(destructor)

向量析構(gòu)函數(shù)(公共成員函數(shù))

operator=

分配公共內(nèi)容功能(成員)

Iterators:

begin

將迭代器返回到開頭(公共成員函數(shù))

end

返回迭代器結(jié)束(公共成員函數(shù))

rbegin

將反向迭代器返回到反向開始(公共成員函數(shù))

rend

返回反向迭代器到反向結(jié)束(公共成員函數(shù))

cbegin?

將常量迭代器返回到開頭(公共成員函數(shù))

cend?

返回常量迭代器結(jié)束(公共成員函數(shù))

crbegin

返回const_reverse_迭代器以反轉(zhuǎn)開始(公共成員函數(shù))

crend?

返回const_reverse_迭代器到reverse end(公共成員函數(shù))

Capacity:

size

返回大小(公共成員函數(shù))

max_size

返回最大大?。ü渤蓡T函數(shù))

resize

更改大?。ü渤蓡T功能)

capacity

已分配存儲(chǔ)容量的返回大小(公共成員函數(shù))

empty

測(cè)試向量是否為空(公共成員函數(shù))

reserve

請(qǐng)求更改容量(公共成員功能)

shrink_to_fit?

收縮到合適的尺寸(公共成員功能)

Element access:

operator[]

訪問元素(公共成員功能)

at

訪問元素(公共成員功能)

front

訪問第一個(gè)元素(公共成員功能)

back

訪問最后一個(gè)元素(公共成員函數(shù))

data?

訪問數(shù)據(jù)(公共成員功能)

Modifiers:

assign

指定向量?jī)?nèi)容(公共成員函數(shù))

push_back

在末尾添加元素(公共成員函數(shù))

pop_back

刪除最后一個(gè)元素(公共成員函數(shù))

insert

插入元素(公共成員函數(shù))

erase

刪除元素(公共成員功能)

swap

交換內(nèi)容(公共成員功能)

clear

清除內(nèi)容(公共成員函數(shù))

emplace?

構(gòu)造和插入元素(公共成員函數(shù))

emplace_back?

在末尾構(gòu)造并插入元素(公共成員函數(shù))

Allocator:

get_allocator

獲取分配器(公共成員函數(shù))


C++容器 I 向量 I Basic的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
富源县| 安阳市| 资讯 | 康平县| 光山县| 梅州市| 卢龙县| 兰西县| 清涧县| 武邑县| 萍乡市| 大邑县| 申扎县| 固阳县| 望江县| 新密市| 电白县| 扶沟县| 临城县| 静安区| 湄潭县| 双辽市| 咸丰县| 平阳县| 靖边县| 松桃| 平邑县| 格尔木市| 和顺县| 五常市| 色达县| 土默特右旗| 南安市| 攀枝花市| 怀来县| 田阳县| 都兰县| 翼城县| 昌乐县| 耒阳市| 丹棱县|