1、vector
初始化:vectorv;
vectorv(v1);//v1是乙個vector
vectorv(it1,it2);//it1,it2是兩個vector::iterator
vectorv(10,0);//初始化為10個0
vectorv(10);//初始化為10個隨機值
檢查容器是否為空:v.empty()
獲取容器中元素長度:v.size();
另附幾個不常使用:v.max_size()//容器中可容納最多元素個數 c.resize(n)//調整容器長度大小為n c.resize(n,t)//同上所有元素設為t
新增元素:v.push_back(10);//在尾新增元素10
v.insert(it,10);//在迭代器it所指向元素前面插入元素10
v.insert(it,10,1);//在迭代器it所指向元素前面插入10個元素0
v.insert(it,it1,it2);//在迭代器it所指向元素前面插入迭代器[it1,it2)範圍內元素
訪問元素:v[10] v.at(10) c.back() c.front 上述返回的都是引用,因此可以用於改變該位置的元素值
刪除元素:v.erase(it);//刪除迭代器it所指向元素
v.erase(it1,it2);//刪除迭代器[it1,it2)範圍內元素
v.clear();//刪除所有元素
c.pop_back;//刪除最後乙個元素
查詢某一元素:find(it1,it2,10);//查詢[it1,it2)範圍內是否存在元素值為10,存在則返回指向該元素迭代器
swap函式:v.swap(v1);//將容器v與v1中內容交換,速度快於將內容複製
assign函式:v.assign(it1,it2);//將v中元素替換為[it1,it2)範圍內元素,it1,it2不能指向v中元素,與swap相比需要將[it1,it2)內容複製到v中
v.assign(10,0);//將v中元素替換為10個0
2、list
初始化:同vector: listl; listl(l1); listl(it1,it2); listl(10,0); listl(10);
容器是否為空:l.empty();
容器大小:l.size(); l.max_size(); l.resize(10); l.resize(10,0);
新增元素:l.push_back(10);//同
l.push_front(10);//在頭新增元素10
l.insert(it,10);//
l.insert(it,it1,it2);//
l.insert(it,10,0);//
訪問元素:l.back(); l.front();//無和at,性質決定
刪除元素:l.erase(it);
l.erase(it1,it2);
l.clear();//
l.pop_back();//
l.pop_front();//和deque有
查詢某一元素:find(it1,it2,0);//返回迭代器
swap函式及assign函式同上,使用
l.swap(l1); l.assign(it1,it2); l.assign(10,0);
3、stack(無迭代器)
初始化:stackstk; stackstk(stk1);
新增元素:stk.push(10);//入棧
刪除元素:stk.pop();//出棧
訪問元素:stk.top();//獲得棧頂元素
stk.empty(); stk.size();
stk.swap(stk1);
3、queue(無迭代器)
queueque; queueque(que1);
que.push(10);//入隊 que.pop();//出對
que.front();//頭 que.back();//尾
que.empty();//判空 que.size();//長度
que.swap(que1);//
4、string
初始化:string s;
string s(s1);
string s("123");
string s("1234",3);//前3個元素用於初始化
string s(s1,3);//s1的[0,3)作為s初始化
string s(s1,1,2);//s1的從位置1開始長度為2的內容用於初始化s
string s(sit1,sit2);//迭代器初始化
修改string物件方法:
insert,erase,assign
訪問某一位置元素:s[1];s.at[1]; 返回引用
擷取子串:s.sustr(1,5);//位置1開始長度為5 s.substr(1);//返回位置1開始子串
replace函式:s.replace(1,5,args); s.replace(it1,it2,args);
args可為多種型別引數,表示一段範圍字串內容即可:下標位置,迭代器等
查詢函式:s.find(args) s.rfind(args);
s.find_first_of(args); s.find_last_of(args);
s.find_first_not_of(args); s.find_last_not_of(args);
比較函式:compare
string的各個函式引數比較多樣化,主要是可以通過下標,迭代器,字串表示一段目標與之匹配
4、map
初始化:mapmp;
mapmp(mp1);
mapmp(it1,it2);
內部型別定義:map::key_type鍵值型別
map::value_type是個pair型別
插入元素:mp.insert(make_pair(10,10));
mp.insert(it1,it2);
insert返回型別為pair::iterator,bool>若插入成功,則second為true;若該鍵值已存在則插入失敗,返回second為false
訪問元素:mp[10];//10是鍵值
count函式:mp.count(10);//返回鍵值為10的元素個數,因此只為0或1
find函式:mp.find(10);//返回鍵值為10的元素的迭代器
erase函式:mp.erase(10)//刪除鍵值為10的元素
mp.erase(it);//刪除迭代器it所指向元素
mp.erase(it1,it2);//刪除迭代器[it1,it2)範圍內資料
5、set
支援insert,count,find,erase等函式
STL常用容器總結
include 標頭檔案 queue q 定義 q.push x 入隊 q.pop 出隊 q.empty 判空 q.size 佇列元素個數 q.front 隊首元素值 q.back 隊尾元素值 include 標頭檔案 stack s 定義 s.push x 入棧 s.pop 出棧 s.empty ...
STL常用函式總結
先進後出,只有乙個出口,只能操作最頂端元素。定義stackstack name 例 stack int s 操作s.empty 返回bool型,表示棧內是否為空 s.size 返回棧內元素個數 s.pop 移除棧頂元素 s.push a 向棧中壓入a元素 s.top 返回棧頂元素 先進先出,從底端加...
STL容器的常用成員函式
一 vector deque 唯二支援隨機訪問的容器 1.插入 v.push back 5 v.insert it,5 在制指定位置插入 v.insert p,n,t 在p迭代器位置插入n個t v.insert p,b,e 在p迭代器位置插入b迭代器和e迭代器之間的元素 dq.push front ...