vector與set區別 基礎知識

2021-09-06 14:00:06 字數 713 閱讀 6501

首先,vector是序列式容器而set是關聯式容器。set包含0個或多個不重複不排序的元素。也就是說set能夠保證它裡面所有的元素都是不重複的。另外對set容器進行插入時可以指定插入位置或者不指定插入位置。如insert(v.begin(),1),也可以直接用insert(1)。還有一點是

set對一些操作符沒有進行過載,如<

下面是舉個例子:

[cpp]view plain

copy

#include 

#include 

#include 

#include 

#include 

using

namespace std;  

int main(void)  

執行程式輸出的結果是:  

3  1  

2  1  

[cpp]view plain

copy

#include 

#include 

#include 

#include 

#include 

using

namespace std;  

int main(void)  

執行後結果是:  

1  2  

3  也就是說,set容器對有重複的元素只取其中的乙個。 

vector與list的區別

vector與list差異點與優缺點 1 vector動態增長 不是隨著每個元素的插入而自己增長的。預先存了一些儲存區,使得實際分配的空間比當前所需的空間多一些,而list 表示非連續的記憶體區域,並通過一對指向首位元素的指標雙向鏈結起來,因而可以兩個方向進行遍歷。2 當從vector末端刪除元素的...

deque與vector的區別

申明儲存空間之後,第乙個元素的位址一直是恆定的,新增元素是只能向後生長,push front 操作需要將所有的元素向後移動一片空間。vector被定義之後一般會有乙個預定的空間capacity 空間不夠的時候才會去申請新的空間 deque在定義儲存空間之後,沒有預設的空間大小,是在元素新增的時候實時...

vector與list的區別

vector 連續儲存的容器,動態陣列,在堆上分配空間 底層實現 陣列 兩倍容量增長 vector 增加 插入 新元素時,如果未超過當時的容量,則還有剩餘空間,那麼直接新增到最後 插入指定位置 然後調整迭代器。如果沒有剩餘空間了,則會重新配置原有元素個數的兩倍空間,然後將原空間元素通過複製的方式初始...