演算法設計與分析第二章STL簡介及練習題

2021-09-27 09:28:49 字數 2385 閱讀 8760

1、stl的組成

1)容器(container)

容器類是容納、包含一組元素或元素集合的物件;

向量(vector)

雙端佇列(deque)

列表(list)

集合(set)、多重集合(multiset)

對映(map)和多重對映(multimap)

2)迭代器(iterator)

①提供訪問了容器中物件的方法。(也可以用其他方法訪問容器中的物件)

②迭代器就如同乙個指標。事實上,c++的指標也是一種迭代器。

3)演算法(algorithm)

① 是用來操作容器中的資料的函式模板。

例如,stl用sort()來對乙個vector中的資料進行排序,用find()來搜尋乙個list中的物件。

②函式本身與他們操作的資料的結構和型別無關,因此他們可以在從簡單陣列到高度複雜容器的任何資料結構上使用;

4)函式物件(function object)

所謂函式物件(function object)是過載了函式呼叫操作符(funiton-call operator())的物件,函式物件的優勢在於能很好的滿足stl的抽象要求

5)介面卡(adaptor)

將乙個class的介面轉換為另乙個class的介面,使得原本因介面不相容而不能合作的classes可以一起運作。

容器介面卡,迭代器介面卡,函式物件介面卡

6)空間配製器(allocator)

動態記憶體空間的分配和**工作

1、zoj2104- let the balloon rise(氣球問題)

問題描述

比賽又開始了。看見到處都是氣球公升起,多激動啊!告訴你乙個秘密:裁判正在非常開心地猜測哪一題最受歡迎。當比賽結束時,他們統計每種顏色氣球的數量就知道結果了。

輸入輸入有多組測試例。

對每個測試例,第乙個數字是n(0<n<1000),表示氣球的數量。接下來n行,每行是乙個氣球的顏色,由小寫字母構成的字串表示,長度不超過15個。當n=0時,表示輸入結束。

輸出對每個測試例輸出一行,是表示最受歡迎的題目的氣球顏色。

問題分析

本題要求輸出顏色數最多的氣球顏色,題目保證只有一種顏色數最多(答案是唯一的)。

本題比較適合用標準模板庫(stl)的容器map(),key為顏色,當同一種顏色重複出現時,讓value計數,然後將value值最大的那個key輸出即可。

**

#include #include #include #include using namespace std;

int main()

map::iterator point,loc;

for(point=balloon.begin();point!=balloon.end();point++)

if(imaxsecond)

cout

問題描述

本題要求建立和遍歷二叉樹。

編寫程式:給出一組二叉樹,實現按層遍歷每棵樹。本題中二叉樹的每個結點都是乙個正整數,並且所有的二叉樹都不超過256個結點。

按層遍歷一棵樹時,同一層上所有結點的資料從左到右輸出,第k層的結點應該在第k+1層的結點之前輸出。

輸入樣例

(11,ll) (7,lll) (8,r)

(5,) (4,l) (13,rl) (2,llr) (1,rrr) (4,rr)

輸出樣例

5 4 8 11 13 4 7 2 1

問題分析

路徑長度決定了結點所在的層次

(5,)

(4,l) (8,r)

(11,ll) (13,rl) (4,rr)

(7,lll) (2,llr) (1,rrr)

可以定義乙個優先佇列,解決該問題

演算法分析筆記第二章STL簡介

stl簡介筆記 stl standard template library 即標準模板庫,是乙個具有工業強度的,高效的c 程式庫。stl是所有c 編譯器和所有作業系統平台都支援的一種庫。1。stl的組成 1 容器 container 2 迭代器 iterator 3 演算法 algorithm 4 ...

第二章 STL簡介

容器共同操作操作 insert pos,e 將元素e的拷貝安插於迭代器pos所指的位置 erase beg,end 移除 beg,end 區間內的所有元素 clear 移除所有元素 c.size 返回元素個數 c.empty 判斷容器是否為空 c.max size 返回元素最大可能數量 固定值 c....

第二章 STL簡介

1 容器 container 2 迭代器 iterator 3 演算法 algorithm 4 函式物件 function object 5 介面卡 adaptor 6 空間配製器 allocator 構造 拷貝和析構 非變動操作 基本原理 將插入的值 第乙個運算元 與樹根 第二個運算元 紅黑樹,二...