標頭檔案:include
定義:動態陣列
vector內元素的訪問:
以vector< int> name為例
vector <
int>
::iterator it = name.
begin()
;name[i]=*
(it+i)
常用函式:
push_back()
在vector最後新增元素。o(1)pop——back()
刪除vector的尾元素。o(1)size()
元素個數。o(1)clear()
清空所有元素。o(n)insert(it,x)
向迭代器it處插入xo(n)erase()
定義:元素有序,不重複的容器
set內元素的訪問:
for
(set<
int>
::iterator it = name.
begin()
;it!=name.
end(
);it++
)printf
("%d "
,*it)
;
常用函式:
insert(x)
將x插入set中自動排序去重。o(logn)find(value)
返回set中值為value的迭代器o(logn)erase()
size()
set內元素的個數o(1)clear()
清除所有元素。o(n)標頭檔案include
定義:string str
string中內容的訪問:
for
(it = str.
begin()
;it!=name.
end(
);it++
)printf
("%c"
,*it)
;
常用函式:
+實現字串拼接
> < <= >= !=
實現字串的比較
length() / size()o(1)
獲取字串長度
insert()o(n)
(1)insert(pos,string)
在pos號位置插入字串string
(2)insert(it,it2,it3)
it為原字串待插入位置,it2,it3為待插字串首尾迭代器
erase()o(n)
clear()o(1)
清空string中的元素
substr()
substr(pos,len)返回從pos位開始長度為len的子串o(len)string::npos值為-1或unsigned_int的最大值,作為find函式失配的返回值
find()o(mn)(mn為兩字串的長度)
replace()
定義:對映
mapmp
第乙個是鍵的型別,第二個是值的型別
eg:
map容器內元素的訪問:
map<
char
,int
> mp;
mp['c']=
30;printf
("%d"
,mp[
'c']
);
輸出為30。
map<
char
,int
> mp;
mp['c']=
30;mp['a']=
10;mp['d']=
40;for(map<
char
,int
>
::iterator it = mp.
begin()
;it!=mp.
end(
);it++
)
map根據鍵從小到大排序。
常用函式:
find(key)o(logn)erase()
size()o(1)
獲取map中對映的對數。
clear()o(n)
清空map中的所有元素
定義:佇列,先進先出
queuename;
queue內元素的訪問:
queueq;
常用函式:
push()o(1)
push(x)將x入隊
front(),back()o(1)
訪問隊首,隊尾元素。
pop()o(1)
令隊首元素出隊
empty()o(1)
檢測佇列是否為空,反回ture為空,false為非空
size()o(1)
返回佇列內個數
使用front(),pop()前必須用empty()判斷是否為空
定義:優先佇列,隊首元素為優先順序最高元素
標頭檔案:#include
priority_queuename;
優先佇列中元素的訪問:
只能透過top()函式來訪問。
常用函式:
push()o(logn)
push(x)將x入隊。
top()o(1)
獲得隊首元素。
pop()o(logn)
隊首元素出隊。
empty()o(1)
檢測佇列是否為空,反回ture為空,false為非空
size()o(1)
返回佇列內個數
優先順序的設定
(1)基本資料型別的優先順序設定
兩種優先佇列設定
priority_queue\q;
priority_queue\,less\> q;
(2) 結構體的優先順序設定定義:棧,後進先出
標頭檔案:#include
stackname;
stack 容器內元素的訪問:
只能通過top()訪問棧頂元素
常用函式
push()o(1)
push(x)將x入棧。
top()o(1)
獲得棧頂元素。
pop()o(1)
棧頂元素出棧。
empty()o(1)
檢測棧是否為空,反回ture為空,false為非空
size()o(1)
返回佇列內個數
定義:用於將兩個元素綁在一起作為乙個合成元素。
標頭檔案:include
pairp;
定義時初始化:pairp("haha",5);
**中臨時構建pair:
1.max(),min(),abs()
2.swap()
3.reverse()
4.next_permutation()
int a[10]
=;dowhile
(next_permutation
(a,a+3)
);
5.fill()
這裡賦值與memset不同可以是範圍內的任意值。
int a[5]
;fill
(a,a+5,
100)
;
6.sort()
用於排序
7.lower_bound(),upper_bound()
演算法筆記 第六章STL模板
char 和char 區別 賦值 過載運算符號 str.assign 查詢 str.find str.rfind string s abca if s.find v s.npos v不存在於s串中 替換 str.replace 比較 s1.compare s2 s1 s2 return 0 訪問 s...
第六章總結
6.1 使用滑鼠 6.1.1 滑鼠時間和滑鼠訊息 根據使用者操作滑鼠時滑鼠的位置,滑鼠訊息分為兩類 客戶區滑鼠訊息和非客戶區滑鼠訊息。1.客戶去滑鼠訊息 2.當滑鼠游標位於視窗的使用者區時,將生成客戶滑鼠訊息。滑鼠訊息和鍵盤訊息有所不同,windows 只將鍵盤有訊息傳送給具有輸入極點的視窗,但滑鼠...
第六章總結
為了解決連續計算的問題需求,而產生了迴圈控制結構。若重複次數已知,則為技術控制,若次數未知,結構為條件控制則為條件控制結構。迴圈結構分兩種結構,三種語句。一 當型迴圈,先判斷,再執行。while語句,滿足條件即執行迴圈。for語句。for語句為一種特殊的當型迴圈,也是最常用的迴圈結構。其結構為 初始...