第二章 STL簡介

2021-09-27 07:35:01 字數 3843 閱讀 4783

容器共同操作操作

insert(pos,e): 將元素e的拷貝安插於迭代器pos所指的位置

erase(beg,end): 移除[beg,end]區間內的所有元素

clear(): 移除所有元素

**c.size()返回元素個數

c.empty()判斷容器是否為空

c.max_size()返回元素最大可能數量(固定值)

c.capacity()返回重新分配空間前可容納的最大元素數量

c.reserve(n)擴大容量為n

#include

#include

using

namespace std;

intmain()

迭代器相關函式

begin()返回乙個迭代器,指向第乙個元素

end()返回乙個迭代器,指向最後乙個元素之後

rbegin()返回乙個逆向迭代器,指向逆向遍歷的第乙個元素

rend()返回乙個逆向迭代器,指向逆向遍歷的最後乙個元素之後

**vector 和 陣列的區別

1.array 定義的時候必須定義陣列的元素個數;而vector 不需要;

2.array 定義後的空間是固定的了,不能改變;而vector 要靈活得多,可再加或減.

3.vector有一系列的函式操作,非常方便使用。

4.陣列和vector不同,乙個陣列不能用另乙個陣列初始化,也不能將乙個陣列賦值給另乙個陣列;

從鍵盤輸入10個整數,用這些整數值作為結點資料,生成乙個鍊錶,按順序輸出鍊錶中結點的數值。然後從鍵盤輸入乙個待查詢整數,在鍊錶中查詢該整數,若找到則刪除該整數所在的結點(如果出現多次,全部刪除),然後輸出刪除結點以後的鍊錶。在程式結束之前清空鍊錶。

#include

#include

using

namespace std ;

intmain()

cout<<

"list: "

;// 輸出鍊錶

list<

int>

::iterator p=link.

begin()

;while

(p!=link.

end())

cout << endl;

cout <<

"請輸入乙個需要刪除的整數: "

; cin >> key;

link.

remove

(key)

;

cout <<

"list: "

; p=link.

begin()

;while

(p!=link.

end())

cout << endl;

}

基本原理

將插入的值(第乙個運算元)與樹根(第二個運算元)(紅黑樹,二叉排序樹)進行比較,如果返回值是true,則在左子樹中進行插入

否則在右子樹中進行插入

#include

#include

using

namespace std;

intmain()

cout<<

"set 的 size 值為 :"

"set 的 maxsize的值為 :"

}

set容器的遍歷

#include

#include

using

namespace std;

intmain()

return0;

}

1. 修改比較函式

#include

#include

#include

using

namespace std;

intmain()

2. 過載 < 運算子

#include

#include

#include

using

namespace std;

class

integer

bool

operator

<

(const integer b)

const

friend ostream &

operator

<<

(ostream &out, integer a)};

intmain()

return0;

}

3. 自定義比較函式

#include

#include

using

namespace std;

struct mycomp};

intmain()

氣球問題

#include

#include

#include

#include

using

namespace std;

intmain()

mapint>

::iterator point,loc;

for(point=balloon.

begin()

;point!=balloon.

end(

);point++)if

(imax>second)

cout<>first <}return0;

}

要改變優先關係(比如,最小值的優先順序最高)

方法一:改變比較函式

方法二:過載資料元素的《運算子

1. 普通方法:

#include

#include

using

namespace std;

intmain()

return0;

}

2、過載 < 運算子

#include

#include

#include

using

namespace std;

class

student

student

(char

*name,

char

*num,

int score)

friend

bool

operator

<

(student s1,student s2)

void

display()

};intmain()

cout

}

第二章 STL簡介

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

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

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

第二章 列表簡介

列表定義 test sss ccc bbb 格式 中用,隔開的元素集合叫做列表 訪問列表 test 0 列表名稱 元素索引位置 索引從0開始算,1 代表倒數第乙個 列表永久排序 字母全是小寫的情況下使用方法sort test.sort 給列表按字母順序排序,永久修改順序,test.sort reve...