vector list deque的基本用法

2021-09-28 23:57:10 字數 1891 閱讀 3078

一.vector的基本用法:

成員函式

變數vector()

無參建構函式,將容器初始化為空

vector(int n)

將容器初始化為有 n 個元素

vector(int n,const t & val)

假定元素的型別是 t,此建構函式將容器初始化為有 n 個元素,每 個元素的值都是 val

vector(iterator first, iterator last)

first 和 last 可以是其他容器的迭代器。一般來說,本建構函式初始化的結果就是將 vector 容器的內容變成與其他容器上的區間 [first, last) —致

void clear()

刪除所有元素

bool empty()

判斷容器是否為空

void pop_back()

刪除容器末尾的元素

void push_back( const t & val)

將 val 新增到容器末尾

int size()

返回容器中元素的個數

t & front()

返回容器中第乙個元素的引用

t & back()

返回容器中最後乙個元素的引用

iterator insert(iterator i, const t & val)

將 val 插入迭代器 i 指向的位置,返回 i

iterator insert( iterator i, iterator first, iterator last)

將其他容器上的區間 [first, last) 中的元素插入迭代器 i 指向的位置

iterator erase(iterator i)

刪除迭代器 i 指向的元素,返回值是被刪元素後面的元素的迭代器

iterator erase(iterator first, iterator last)

刪除容器中的區間 [first, last)

void swap( vector & v)

將容器自身的內容和另乙個同型別的容器 v 互換

二.list的基本用法:

注意:list 的建構函式和許多成員函式的用法都與 vector 類似,list還獨有如下表所示。

成員函式

變數void push_front(const t & val)

將 val 插入鍊錶最前面

void pop_front()

刪除鍊錶最前面的元素

void sort()

將鍊錶從小到大排序

void remove (const t & val)

刪除和 val 相等的元素

remove_if

刪除符合某種條件的元素

void unique()

刪除所有和前乙個元素相等的元素

void merge(list & x)

將鍊錶 x 合併進來並清空 x。要求鍊錶自身和 x 都是有序的

void splice(iterator i, list & x, iterator first, iterator last)

在位置 i 前面插入鍊錶 x 中的區間 [first, last),並在鍊錶 x 中刪除該區間。鍊錶自身和鍊錶 x 可以是同乙個鍊錶,只要 i 不在 [first, last) 中即可

三.deque的基本用法:

注意:deque 的建構函式和許多成員函式的用法都與 vector 類似,deque還獨有如下表所示。

成員函式

變數void push_front (const t & val)

將 val 插入容器的頭部

void pop_front()

刪除容器頭部的元素

vector,list,deque。用法區別

stl提供了三個最基本的容器 vector,list,deque。vector和built in陣列類似,它擁有一段連續的記憶體空間,並且起始位址不變,因此它能非常好的支援隨即訪問,即操作符,但由於它的記憶體空間是連續的,所以在中間進行插入和刪除會造成記憶體塊的拷貝,另外,當該陣列後的記憶體空間不夠...

vector,list,deque。用法區別

stl提供了三個最基本的容器 vector,list,deque。vector和built in陣列類似,它擁有一段連續的記憶體空間,並且起始位址不變,因此它能非常好的支援隨即訪問,即操作符,但由於它的記憶體空間是連續的,所以在中間進行插入和刪除會造成記憶體塊的拷貝,另外,當該陣列後的記憶體空間不夠...

如何選擇vector list deque

我想把三個常用的序列式放在一起對比一下是有必要的 vector vector和built in陣列類似,擁有一段連續的記憶體空間,能非常好的支援隨即訪問,即操作符,但由於它的記憶體空間是連續的,所以在中間進行插入和刪除會造成記憶體塊的拷貝,另外,當插入較多的元素後,預留記憶體空間可能不夠,需要重新申...