演算法筆記第六章總結 STL

2021-10-02 20:12:51 字數 4252 閱讀 6368

標頭檔案: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語句為一種特殊的當型迴圈,也是最常用的迴圈結構。其結構為 初始...