STL主要包含了容器、迭代器、算法和string四部分。
標(biāo)準(zhǔn)庫算法對迭代器而不是容器進(jìn)行操作。因此,算法不能(直接)添加或刪除元素。一、容器 容器為存儲和管理數(shù)據(jù)對象的集合,包含了三種容器:
1.線性容器:該類容器的邏輯結(jié)構(gòu)為線性結(jié)構(gòu)??梢酝ㄟ^下標(biāo)訪問元素的容器稱為隨機(jī)容器,其特點是容器中的元素在內(nèi)存中是連續(xù)存放的,容器的存儲結(jié)構(gòu)為順序存儲結(jié)構(gòu)。vector和deque為隨機(jī)容器。
2.適配器容器:以線性容器作為底層容器,且對線性容器的通用接口加以限制。默認(rèn)的底層容器為雙端隊列。只要滿足上層容器對接口的要求,也可以用自己定義的容器類型作為適配器容器的底層容器。
容器的創(chuàng)建 :3.關(guān)聯(lián)容器:其存儲結(jié)構(gòu)為平衡樹,基于紅黑樹實現(xiàn)。
//模板類創(chuàng)建
vectora; //定義了一個vector類型的變量,其中元素為整型
//用戶自定義類型的容器變量
struct node{
int key;
int data;
};
vectorb;
注意:用戶自定義的類型不適用于容器priority_queue、map、multimap、set、multiset
的類型參數(shù),因為這類容器需要根據(jù)元素值的大小來決定存放位置。因此,創(chuàng)建這類容器時,
需定義元素之間的比較準(zhǔn)則,確保元素之間可以進(jìn)行比較。
因此,若用戶自定義類型為整形、字符型等基本數(shù)據(jù)類型,也適用于以上容器;
若容器元素類型為用戶自定義類型,則必須指定自定義類型變量之間的比較方法。
//第一種方法:基于運(yùn)算符的比較方法
//包含小于運(yùn)算符重載的類型定義
struct node{
int key;
int data;
bool operator<(const node &n1)const{
return keyse;
//第二種方法:基于比較器的比較方法
//即定義對函數(shù)調(diào)用進(jìn)行重載的結(jié)構(gòu),并在創(chuàng)建對象時將該結(jié)構(gòu)名作為參數(shù)
struct cmp{
bool oprator()(node n1,node n2){
return n1.keyse;
容器的基本操作:?size()
empty()
insert()
erase()
clear()
begin()
end()
pair類型:pair類型的變量將一對值組合成一個整體(相當(dāng)于一個含有兩個元素的結(jié)構(gòu)),這一對值可以具有不同的數(shù)據(jù)類型,可以用pair的;兩個公有屬性first和second訪問這兩個值。
pairp(1,"hahaha"); //在定義時初始化
p=make_pair(2,"abc"); //改變pair變量的值
cout<>vp; //pair作為其他容器的類型參數(shù)
vp.push_back(make_pair(2,4));
cout<
二、迭代器?迭代器可以訪問容器(適配器容器除外)的元素,迭代器和容器的關(guān)系類似于指針和數(shù)組的關(guān)系。迭代器和指針之間的一個重要區(qū)別就是不存在NULL的迭代器。
//迭代器的定義方式:
//容器類型::iterator it
vector::iterator it;
//向前/后移動
it--;
it++;
//隨機(jī)迭代器如vector和deque,可以采用加上或減去一個整數(shù)的方式向后/向前移動
it = it+2;
//非隨機(jī)容器的迭代器只能采用“++”或“--”移動
//舉例:遍歷容器所有元素
for(vector::iterator it=a.begin();it!=a.end();it++)
cout<<*it<
三、算法?
string用法//頭文件
#include//初始化
string s1;
string s2("hello world!");
string s3="hello china!";
//賦值與比較
if(s2>s3) cout<
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前文章:STL簡介-創(chuàng)新互聯(lián)
文章地址:http://chinadenli.net/article20/cdscjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、動態(tài)網(wǎng)站、網(wǎng)站設(shè)計公司、全網(wǎng)營銷推廣、網(wǎng)頁設(shè)計公司、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容