通過標準庫管理集合 set和map

2021-10-22 21:19:52 字數 1924 閱讀 9494

目錄

通過標準庫管理集合

setmap 總結

管理元素集合的stl容器分為兩類:

序列式容器將元素置於特定位置,該位置由插入的時間和地點決定,與元素本身的值無關,如vector和list。

關聯式容器會根據特定的排列順序將元素置於適當位置,如set和map。

下面介紹set和map。

#include用來將stl的set包含到程式中。set<> 是乙個宣告,用來生成乙個指定型別的集合,如同前面的vector和list。set中元素唯一,不存在重複元素。

set中的函式

函式名功能複雜度

size()

返回元素個數

o(1)

clear()

清空set

o(n)

begin()

返回指向set開頭的迭代器

o(1)

end()

返回指向set末尾的迭代器

o(1)

insert()

向set中插入元素

o(logn)

erase()

刪除該元素

o(logn)

find()

返回指向該元素的迭代器

(如果沒有此元素返回末尾end())

o(logn)

set由二叉搜尋樹實現,並進行了平衡處理,因此插入,搜尋,刪除的複雜度在o(logn)

**如下:

#include#includeusing namespace std;

void print(sets)

cout << endl;

}void print(sets)

cout << endl;

}int main()

map的元素由鍵和值組成,以為排序標準,集合中鍵唯一,不能重複#include用來將stl的map包含到程式中。map< , >是乙個宣告,用來生成關聯陣列,需要指定一對鍵和值的型別。(如map)

map中的函式

函式名功能複雜度

size()

返回元素個數

o(1)

clear()

清空map

o(n)

begin()

返回指向開頭的迭代器

o(1)

end()

返回指向末尾的迭代器

o(1)

insert( ( ,))

向map中插入元素

o(logn)

erase()

刪除該元素

o(logn)

find()

返回指向該元素的迭代器

(如果沒有該元素返回末尾end())

o(logn)

map和set一樣通過二叉搜尋樹實現,因此搜尋,刪除,插入以及「」操作複雜度為o(logn)

**如下:

#include#include#includeusing namespace std;

void print(maps)

}int main()

return 0;

}

關聯式容器在管理資料時會自動給元素排序,雖然序列式容器也可以進行排序,但是關聯式容器的優點在於可以隨時採用二分搜尋法,搜尋元素的效率極高。

讀《挑戰程式設計競賽》第二十四天(侵刪)2021.3.22

( 2021.7.12 第一次修改)

Set集合和Map集合

用於存放不重複的資料,通過建構函式的形式 引數必須是乙個可迭代物件 建立set物件 set集合方法add 新增乙個資料 has 判斷資料是否存在,存在返回true delete 刪除資料,刪除成功返回true clear 清空集合 size,這個是屬性,返回的是集合長度,只能讀不能改 const s...

map集合和set集合

map是一種通過 鍵值 key value 對對映表的資料結構。通過key可以實現快速查詢元素。put key,value 新增 get key 查詢 遍歷map 用for each來迴圈遍歷map例項的 keyset 返回的set集合。同時遍歷key和value可以使用for each迴圈遍歷ma...

C 標準庫set型別

set容器只是單純的鍵的集合,鍵必須為一。set容器不支援下標操作,而且沒有定義maped type型別。在set容器中,value type不是pair型別,而是與key type型別相同的型別。1.在set中新增元素set set1 set1.insert the set1.insert end...