中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

STL中的set/multiset實操總結
來源:易賢網 閱讀:854 次 日期:2014-08-20 14:22:02
溫馨提示:易賢網小編為您整理了“STL中的set/multiset實操總結”,方便廣大網友查閱!

(1)使用set/multiset之前必須包含頭文件<set>:#include<set>

(2)namespace std{

template <class T, class Compare = less<T>,

class Allocator = allocator<T> >

class set;

template <class T, class Compare = less<T>,

class Allocator = allocator<T> >

class multiset;

}

只要是assignable、copyable、comparable的型別T都可以成為set或multiset的元素型別。

set/multiset的排序準則必須是strict weak ordering其意義是:1必須是反對稱的,對判斷式op而言,如果op(x,y)為真則op(y,x)為假。2必須是可傳遞的,如果op(x,y)為真且op(y,z)為真則op(x,z)。3必須是非自反的,op(x,x)永遠為假。

(3)set/multiset通常都是以平衡二叉樹來實現的,事實上set/multiset的實現版本大多以紅黑樹來實現,它保證節點安插時最多只會做兩個重新連接動作,而且到達某一元素的最長路徑最多只是最短路徑深度的兩倍。

(4)set/multiset的操作函數:

set c 產生一個空set/multiset

set c(op) 以op為排序準則產生一個空set/multiset

set c1(c2) 產生某一個set/multiset的副本

set c(beg, end) 以區間[beg, end)內的元素產生一個set/multiset

set c(beg, end, op) 以op為排序準則,以區間[beg, end)內的元素產生一個set/multiset

c.~set() 銷毀所有元素,釋放內存

其中set可為下列形式:set<Elem>、set<Elem, op>、multiset<Elem>、multiset<Elem, op>

c.size() 返回當前的元素數量

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

c.max_size() 返回可容納的元素最大數值

c1 compare c2 compare可為==,!=,<,>,<=和>=

c.count(elem) 返回“元素值為elem”的元素個數

c.find(elem) 返回“元素值為elem”的第一個元素的迭代器,如果找不到就返回end()

c.lower_bound(elem) 返回elem的第一個可安插位置,也就是“元素值>=elem”的第一個元素位置

c.upper_bound(elem) 返回elem的最后一個可安插位置,也就是“元素值>elem”的第一個元素位置

c.equal_range(elem) 返回elem的第一個和最后一個位置,也就是“元素值==elem”的第一個元素區間,返回值為將lower_bound()和upper_bound()的返回值做成一個pair返回

c1 = c2 將c2全部元素賦值給c1

c1.swap(c2) 將c1和c2元素互換

c.begin() 返回一個雙向存取迭代器(將元素視為常數),指向第一個元素

c.end() 返回一個雙向存取迭代器(將元素視為常數),指向最后元素的下一個位置

c.rbegin() 返回一個逆向迭代器,指向逆向迭代的第一個元素

c.rend() 返回一個逆向迭代器,指向逆向迭代的最后元素的下一個位置

c.insert(elem) 插入一個elem副本并返回新元素的位置

c.insert(it, elem) 安插elem副本返回新元素的位置(it是一個提示指出安插操作的搜尋起點)

c.insert(beg, end) 插入區間[beg, end)內的所有元素副本,無返回值

c.erase(elem) 移除“與elem相等”的所有元素,返回被移除元素的個數

c.erase(it) 移除it位置上的元素,無返回

c.erase(beg, end) 移除[beg, end)區間內的所有元素,無返回

c.clear() 將容器清空

set提供如下接口:

pair<iterator, bool> insert(const value_type& elem);

pair結構中的second成員表示安插是否成功;first成員返回新元素的位置或返回現存的同值元素位置

iterator insert(iterator pos_hint, const value_type& elem);

multiset提供如下接口:

iterator insert(const value_type& elem);

iterator insert(iterator pos_hint, const value_type& elem);

更多信息請查看IT技術專欄

更多信息請查看網絡編程
易賢網手機網站地址:STL中的set/multiset實操總結
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
主站蜘蛛池模板: 黑龙江省| 江油市| 天津市| 湄潭县| 青龙| 屏南县| 西昌市| 延长县| 和龙市| 雷波县| 兴城市| 贡山| 甘肃省| 穆棱市| 嘉祥县| 高州市| 玉门市| 沙坪坝区| 广安市| 文安县| 洛扎县| 图木舒克市| 白山市| 迭部县| 商都县| 曲松县| 峡江县| 鄂伦春自治旗| 东阿县| 兴宁市| 德惠市| 龙岩市| 炎陵县| 泾源县| 绥江县| 万安县| 德安县| 石阡县| 湖南省| 西和县| 汨罗市|