STL相關知識

2021-10-03 01:30:07 字數 1293 閱讀 5532

c++的標準模板庫(standard template library,簡稱stl)是乙個容器和演算法的類庫。容器往往包含同一型別的資料。stl中比較常用的容器是vector,set和map等

vectore

乙個vector類似於乙個動態的一維陣列,vector中可以存在重複的元素!

1 宣告

(1) vector a; // 宣告乙個元素為int型別的vector a

(2) vectot a; // 宣告乙個元素為mytype型別的vector a

a包含0個元素,即a.size()的值為0,但它是動態的,其大小會隨著資料的插入和刪除改變而改變。

(3) vector a(100, 0); // 這裡宣告的是乙個已經存放了100個0的整數vector

2 遍歷

(1) for(vector::iterator it=a.begin(); it!=a.end(); it++)

cout<<*it<(2). for(int i = 0; i < a.size(); i++)

cout<3 其他操作

a.size(); 返回vector的大小,即包含的元素個數

a.pop_back(); 刪除vector末尾的元素,vector大小相應減一

a.push_back(); 用於在vector的末尾新增元素

a.back(); 返回vector末尾的元素

a.clear(); 將vector清空,vector大小變為0

a.at() 得到編號位置的資料

a.begin() 得到陣列頭的指標

a.end() 得到陣列的最後乙個單元+1的指標

a.front() 得到陣列頭的引用

a.back() 得到陣列的最後乙個單元的引用

a. max_size() 得到vector最大可以是多大

a.capacity() 當前vector分配的大小

a.size() 當前使用資料的大小

a.resize() 改變當前使用資料的大小,如果它比當前使用的大,則填充預設值

a.reserve() 改變當前vecotr所分配空間的大小

a.erase() 刪除指標指向的資料項

a.clear() 清空當前的vector

a.rbegin() 將vector反轉後的開始指標返回(其實就是原來的end-1)

a.rend() 將vector反轉構的結束指標返回(其實就是原來的begin-1)

a.empty() 判斷vector是否為空

a.swap() 與另乙個vector交換資料

STL相關知識整理 一 allocator

一般而言,我們習慣的 c 記憶體配置操作和釋放操作是這樣的 class foo foo pf new foo delete pf 我們看其中第二行和第三行,雖然都是只有一句,當是都完成了兩個動作。但你 new 乙個物件的時候兩個動作是 先呼叫 operator new 分配乙個物件大小的記憶體,然後...

知識點總結 STL相關(持續補充)

恢復內容開始 vector是動態陣列,可以理解為是能夠根據需要隨時申請記憶體的動態陣列。常用操作如下 修改迭代器 元素訪問 示例 include using namespace std vector v 宣告部分 intmain 迭代器的用法 vector iterator it for it v....

STL相關基礎

stl standard template library 是c 的標準模板庫 容器 containers 由個各種資料結構組成,包括vector,list,deque,set,map等,用來存放資料。從實現角度來講,stl容器是一種class template 演算法 algorithms 由各種...