STL中的基本容器:
成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)十余年經(jīng)驗(yàn)成就非凡,專業(yè)從事成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計(jì),成都網(wǎng)頁制作,軟文平臺(tái),一元廣告等。十余年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:18980820575,我們期待您的來電!vector :? 變長(zhǎng)數(shù)組 , 倍增的思想(由于系統(tǒng)為某一程序分配空間時(shí),所需時(shí)間與空間大小無關(guān),與申請(qǐng)次數(shù)有關(guān),所以每次增加數(shù)組長(zhǎng)度時(shí)會(huì)增加一倍(空間換時(shí)間))
pair : 存儲(chǔ)一個(gè)二元組
string : 字符串 , substr() , c_str()
queue : 隊(duì)列 , push() , front() , pop()
priority_queue : 優(yōu)先隊(duì)列 ,默認(rèn)是大根堆,?push() , top() , pop()
stack : 棧 , push() , top() , pop()
deque :? 雙端隊(duì)列(不常用,效率比一般的數(shù)組慢好幾倍)
set , map , multiset , multimap : 基于平衡二叉樹(紅黑樹),動(dòng)態(tài)維護(hù)有序序列
unordered_set , unordered_map , unordered_multiset , unordered_multimap : 哈希表
bitset :? 壓位
用到的頭文件:?
#include#include#include#include
#include#include#include#include#include#include
基本用法:
一、vector
#includeint main()
{
vectora , a(10) , a[10] , a(10,3);
a.size(); //返回元素個(gè)數(shù) ,O(1)
a.empty(); // 返回是否為空 , O(1)
a.clear(); // 清空
a.front()/a.back(); // 返回第一個(gè)/最后一個(gè)數(shù)
a.push_back()/a.pop_back(); // 在最后插入一個(gè)數(shù)/刪掉最后一個(gè)數(shù)
a.begin()/a.end(); // 返回第0個(gè)數(shù)/最后一個(gè)數(shù)后面的一個(gè)數(shù)
a[8] , a[84]; // 隨機(jī)取址
遍歷:
一:
for(int i = 0 ; i< 10 ; i ++) a.push_back(i);
for(int i = 0 ; i< a.size() ; i ++) cout<< a[i]<< ' ' ;
cout<< endl;
二:迭代器:可以理解為指針,所以需要用*來取出值
for(vector::iterator i = a.begin() ; i != a.end() ; i ++ ) cout<< *i<< ' ';
cout<< endl;
三:
for(auto x : a) cout<< x<< ' ';
cout<< endl;
支持比較運(yùn)算(按字典序):
vectora(4,3) , b(3,4);
if(a< b) puts("a< b");
return 0;
}
二、pair
int main()
{
//創(chuàng)建和初始化:
pair>P; //<>里面可以是任意類型的兩個(gè)變量
pairp(10,"abc");
pairp1,p2;
p1 = make_pair(10 , "abc");
p2 = p1;
p2.first; // 第一個(gè)元素
p2.second; // 第二個(gè)元素
cout<< p2.first<< p2.second<< endl;
支持比較運(yùn)算,以first為第一關(guān)鍵字,second為第二關(guān)鍵字(按字典序)
return 0;
}
三、string
int main()
{
string s;
s.size(); //返回字符個(gè)數(shù)
s.empty(); //返回字符串是否為空
s.clear(); // 清空字符串
支持加法運(yùn)算(每個(gè)加法運(yùn)算都有一個(gè)運(yùn)算符是string):
s += "abc";
s += 'c';
s.substr(1,2); //返回某段字符串,第一個(gè)參數(shù)表示從這一位置(1)開始,第二個(gè)參數(shù)表示返回字符串長(zhǎng)度(2)
s.substr(1); // 省略第二個(gè)參數(shù),返回從1(第一個(gè)參數(shù))開始到末尾的字符串
輸出:
cout<< s<< endl;
printf("%s\n",s.c_str());
return 0;
}
四、queue
#includeint main()
{
queueq;
q.size() , q.empty();
q.push(5); // 向隊(duì)尾插入一個(gè)元素
q.front(); // 返回隊(duì)頭元素
q.back(); // 返回隊(duì)尾元素
q.pop(); // 彈出隊(duì)頭元素
q = queue(); // 清空只需要重新定義一下
return 0;
}
五、priority_queue
#include#includeint main()
{
priority_queueh;
h.push(8);//插入一個(gè)元素
h.top();//返回堆頂元素
h.pop();//彈出堆頂元素
定義成小根堆的方式:、
priority_queue, greater>q;
return 0;
}
六、stack
#includeint main()
{
stacks;
s.size(),s.empty();
s.push(4); // 向棧頂插入一個(gè)元素
s.top(); //返回棧頂元素
s.pop(); //彈出棧頂元素
return 0;
}
七、deque(不常用,效率低)
#includeint main()
{
dequeq;
q.size(),q.empty();
q.front()/q.back(); //返回第一個(gè)/最后一個(gè)元素
q.push_back()/q.pop_back(); //向最后插入一個(gè)元素/彈出最后一個(gè)元素
q.push_front()/q.pop_front(); //從隊(duì)首插入/彈出隊(duì)首元素
q.begin()/q.end(); //迭代器
q.clear();
q[5],q[8];//隨機(jī)取址
return 0;
}
八、set、multiset、map、multimap(自動(dòng)排序)
#include#include
九、unordered_set , unordered_map , unordered_multiset , unordered_multimap(不會(huì)自動(dòng)排序)
#include#includeint main()
{
增刪改查的時(shí)間復(fù)雜度都是O(1)
int x;
public:
size();
empty();
clear();
unordered_sets/unordered_multisetms; //set里面不允許有重復(fù)的數(shù)
insert(x); //插入一個(gè)數(shù)(6)
find(x); //查找一個(gè)數(shù)(4),不存在返回s.end()
count(x); //返回某個(gè)數(shù)(5)的個(gè)數(shù)
erase();//(1) 輸入是一個(gè)數(shù)x,刪除所有x
//(2)輸入是一個(gè)迭代器,刪除迭代器
unordered_mapa/unordered_multimapua;
insert(x); //插入的數(shù)是一個(gè)pair
erase(); //輸入的參數(shù)是pair或者迭代器
find(x);
a["abc"] = 1; //可以像數(shù)組一樣用
return 0;
}
十、bitset
#includeint main()
{
bitset<10000>s;
支持所有位運(yùn)算:
~ , & , | , ^ , >>,<< , == , != , []
count(); //返回有多少個(gè)1
any(); //判斷是否至少有一個(gè)1
none(); // 判斷是否全為0
set(); // 把所有位置成1、
set(k,v); // 將第k為變成v
reset(); // 把所有位變成0
flip(); // 等價(jià)于~
flip(k) ; // 把第k位取反
return 0;
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
名稱欄目:STL【C++】-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://muchs.cn/article12/idgdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、云服務(wù)器、網(wǎng)站策劃、網(wǎng)站排名、網(wǎng)站導(dǎo)航、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容