標頭檔案
#include
using namespace std;
定義
//map可以將任何基本型別對映到任何基本型別
//<>內第乙個是鍵的型別,第二個為值的型別
map mp;
//如果是字串到整形的對映,必須用string而不是char陣列,因為char陣列作為陣列,是不能當作鍵值的
mapint> mp;
訪問
//map中的鍵是唯一的
//通過下標訪問
map<
char
,int
> mp;
mp['c']=20
; mp[
'c']=30
;printf
("%d\n"
,mp[
'c']
);
//map可以用it->first訪問鍵,用it->second訪問值
//map以鍵從小到大順序自動排序
map<
char
,int
> mp;
mp['m']=20
; mp[
'r']=30
; mp[
'a']=40
;for
(map<
char
,int
>
::iterator it=mp.
begin()
;it!=mp.
end(
);it++
)
a 40查詢元素m 20
r 30
//find(key)返回鍵為key的對映的迭代器
map<
char
,int
> mp;
mp['m']=20
; mp[
'r']=30
; mp[
'a']=40
; map<
char
,int
>
::iterator it=mp.
find
('m');
printf
("%c %d\n"
,it->first,it->second)
;
刪除元素
mp.
erase
(it)
; mp.
erase
(key)
; mp.
erase
(first,last)
;
標頭檔案
#include
#include
新增map標頭檔案會自動新增utility標頭檔案,可以直接#include< map >
初始化,訪問元素
#include
#include
#include
using namespace std;
intmain()
hehe 5比較運算元haha 55
xixi 555
heihei 5555
比較規則為先以first大小為標準,first相等時再判別second大小
pair<
int,
int>p1(
5,10)
; pair<
int,
int>p2(
5,15)
; pair<
int,
int>p3(
10,5)
;if(p1printf
("p1);if
(p2printf
("p2)
;
p1作為map鍵值對其進行插入標頭檔案hehe 5#include
#include
using namespace std;
intmain()
return0;
}
haha 55
heihei 555
#include
using namespace std;
定義
queue name;
出入佇列
queue<
int> q;
q.push
(x);
q.pop()
;
訪問元素
//佇列是限制性資料結構,只能訪問隊頭和隊尾元素
x=q.
front()
; x=q.
back()
;
判空
//使用pop(),front()函式前,必須用empty()判斷佇列是否為空if(
!q.empty()
)
底層是用堆實現的,隊首元素一定是當前佇列中優先順序最高的那個。
#include
#include
using namespace std;
intmain()
4元素優先順序設定 基本資料型別4
基本資料型別預設數字大的優先順序高,下面兩種寫法等價
priority_queue<
int> q;
priority_queue<
int,vector<
int>
,less<
int>
> q;
其中第二個引數vector< int >表示承載底層資料結構堆的容器,
第三個引數是對第乙個引數的比較類,less< int>表示數字大的優先順序大,greater< int>表示數字小的優先順序大
#include
#include
using namespace std;
intmain()
元素優先順序設定 結構體型別
在結構體中新增乙個函式,將小於號過載
過載大於號會導致編譯錯誤
#include
#include
#include
using namespace std;
struct fruit};
intmain()
梨子 4若將小於號過載為大於號
struct fruit
};
蘋果 1若要將該函式寫在結構體外面,需用基本資料型別的方式來定義優先佇列
#include
#include
#include
using namespace std;
struct fruitf1,f2,f3;
struct cmp};
intmain()
蘋果 1若結構體內資料比較龐大,可使用引用來提高效率
struct cmp
};
friend bool operator <
(const fruit& f1,
const fruit&f2)
#include
#include
using namespace std;
intmain()
st.pop();
if(!st.
empty()
)return0;
}
C 標準模板庫STL
stl是標準c 庫的一部分。stl模板類為c 提供了完善的資料結構和演算法。stl的特點 型別引數化 即stl的 中可處理任意自定義型別的物件。泛型程式設計 generic programming 它以模板為基礎,弱化了 實體型別的差異,簡化了程式設計時問題抽象的模型,提供了更好的 封裝性和彈性。s...
C 標準模板庫STL
stl 標準模板庫 包括容器,演算法,迭代器 容器用來儲存資料,比如vector,list,堆疊等,string也算 一共有八個 演算法就是對容器進行操作,比如增刪改查資料 迭代器用來遍歷容器itreator 用指標的方式來遍歷容器的資料 注 平時使用的時候大部分時候我們都用上了,但是面試的時候不能...
c (標準模板庫STL)
stl是一種泛型程式設計 generic programming 容器主要有以下分類 例如 容器的成員函式begin 返回指向容器中第乙個元素的迭代器 end 返回指向容器中最後乙個元素後繼位置的迭代器。下面通過stl中提供的乙個泛型函式find 來說明迭代器與泛型演算法的關係 首先看下stl對於f...