STL2 順序容器

2021-06-20 15:31:33 字數 2059 閱讀 3410

操作:

1. swap(c1,c2)或c1.swap(c2):交換c1和c2中元素,c1和c2型別必須相同,它比c2向c1拷貝元素快得多。

2. seq.assign(b,e)將seq中的元素替換為迭代器b和e表示範圍內的元素。seq.assign(n,t)將seq中的元素替換為n個t。assign操作不適合關聯容器和array。

3. c.push_back(t),c.emplace_back(args)

4. c.push_front(t),c.emplace_front(args)

5. c.insert(p,i),c.emplace(p,args),c.insert(p,n,t),c.insert(p,b,e),c.insert(p,il)

6. c.pop_back()

7. c.pop_front()

8. c.erase(p):刪除迭代器p所指定的元素;c.erase(b,e);c.erase()刪除所有元素。

9. li.resize(15);改變容器大小。 一.

1.   vector表示物件的集合,vector是類模板。不存在包含引用的vector。

#inclue

using std::vector;

2.   如果迴圈體內包含有vector物件新增元素的語句,則不能使用範圍for迴圈。範圍

for語句體內不應該改變其遍歷序列的大小。

3.   size()函式返回型別為:vector::size_type

4.   新增元素push_back();

void vectortest();

for(int i=6; i<11 ; i++)

v.push_back(i);

for(auto&c:v)

cout< }

二. 1.固定大小陣列。支援快速隨機訪問,不能新增或刪除元素。

2. 內建陣列不能進行拷貝或物件賦值,但是array無此限制。

3.例子:

void arraytest();

cout< }

三.1.雙端佇列,在頭尾刪除或插入速度都很快。在中間位置刪除或插入代價很大。

2.例子:

void dequetest();

de.push_back(8);

de.push_back(9);

de.pop_front();

for(auto&c:de)

cout<

cout< }

四.1.雙向鍊錶,在任何位置刪除或插入都很快。不支援元素的隨機訪問,為了訪問乙個元素,需要遍歷整個鍊錶。與vector、deque、array相比,其記憶體開銷很大。

2.例子:刪除所有基數元素。

void listtest();

li.push_front(2);

li.push_front(1);

li.push_back(8);

li.push_back(9);

cout<<"list中元素為:"<

for(auto &c:li)

cout<

cout<

auto it = li.begin();

while(it !=li.end())

if(*it %2)

it =li.erase(it);

else

++it;

cout<<"list刪除基數元素為:"<

for(auto &c:li)

cout<

cout< }

五. 1.單向鍊錶,在任何位置刪除或插入速度很快。與vector、deque、array相比,其記憶體開銷很大。

2.其沒有size操作,因為儲存或計算其大小就會比手寫鍊錶多出額外的開銷。

void forward_listtest();

auto prev =flist.before_begin();

auto curr =flist.begin();

while(curr !=flist.end()) }

cout<<"刪除基數元素後為:"<

for(autoc:flist)

cout<

cout< }

stl 2 初始容器迭代器演算法

include std cout std endl 螢幕輸出需要的標頭檔案 include vector容器和vector迭代器需要的標頭檔案 include for each演算法需要的標頭檔案 宣告乙個for each演算法需要用到的 函式 void myprint int v int main...

王小明學STL2

大叔!你騙我。王小明找上了大叔,憤憤不平。我怎麼騙你了?大叔正無聊地翻著一本早被翻爛的書。你騙我用stl,我去網上查了,很多人都說stl慢!慢的很 你是怎麼知道他慢的?你昨天不是教我用vector嗎?我回去用陣列和它比較了一下,發現比陣列插入的速度慢了好多!你是怎麼試驗的?你看,我是這樣寫的。說著,...

stl容器之順序容器

stl容器分為順序容器和關聯容器 其中順序容器最常用的由vector,list,queue 1.vector vector 向量容器,可以看作變長陣列,長度可根據需要自行變化。使用的標頭檔案 include 定義方式 vector陣列名 vectorar 訪問容器內資料的方式和普通陣列相同,可以用a...