Set和Multiset 怎麼用咧

2022-03-22 12:01:19 字數 2084 閱讀 1826

操作

效果

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,以(operator <)為排序準則

set產生乙個set,以op為排序準則

操作

效果

c.size()

返回當前的元素數量

c.empty ()

判斷大小是否為零,等同於0 == size(),效率更高

c.max_size()

返回能容納的元素最大數量

c1 == c2

判斷c1是否等於c2

c1 != c2

判斷c1是否不等於c2(等同於!(c1==c2))

c1 < c2

判斷c1是否小於c2

c1 > c2

判斷c1是否大於c2

c1 <= c2

判斷c1是否小於等於c2(等同於!(c2

c1 >= c2

判斷c1是否大於等於c2 (等同於!(c1

操作

效果

count (elem)

返回元素值為elem的個數

find(elem)

返回元素值為elem的第乙個元素,如果沒有返回end()

lower _bound(elem)

返回元素值為elem的第乙個可安插位置,也就是元素值 >= elem的第乙個元素位置

upper _bound (elem)

返回元素值為elem的最後乙個可安插位置,也就是元素值 > elem 的第乙個元素位置

equal_range (elem)

返回elem可安插的第乙個位置和最後乙個位置,也就是元素值==elem的區間

操作

效果

c1 = c2

將c2的元素全部給c1

c1.swap(c2)

將c1和c2 的元素互換

swap(c1,c2)

同上,全域性函式

操作

效果

c.begin()

返回乙個隨機訪問迭代器,指向第乙個元素

c.end()

返回乙個隨機訪問迭代器,指向最後乙個元素的下乙個位置

c.rbegin()

返回乙個逆向迭代器,指向逆向迭代的第乙個元素

c.rend()

返回乙個逆向迭代器,指向逆向迭代的最後乙個元素的下乙個位置

操作

效果

c.insert(elem)

插入乙個elem副本,返回新元素位置,無論插入成功與否。

c.insert(pos, elem)

安插乙個elem元素副本,返回新元素位置,pos為收索起點,提公升插入速度。

c.insert(beg,end)

將區間[beg,end)所有的元素安插到c,無返回值。

c.erase(elem)

刪除與elem相等的所有元素,返回被移除的元素個數。

c.erase(pos)

移除迭代器pos所指位置元素,無返回值。

c.erase(beg,end)

移除區間[beg,end)所有元素,無返回值。

c.clear()

移除所有元素,將容器清空

STL 排序容器multiset和set用法詳解

前言 希望在大量資料中進行的元素增加 刪除 查詢都在log n 複雜度內完成,排序 二分查詢顯然不可以,因為新加入資料就要進行重新排序。而使用 平衡二叉樹 資料結構存放資料就可以達到目的,在stl中體現為以下四種排序容器 multiset set multimap map。標頭檔案 include ...

set和multiset容器簡介

set和multiset容器簡介 開發工具與關鍵技術 c visualstudioset 是乙個集合容器,其中所包含的元素是唯一的,集合中的元素按一定的順序排列。它其他的 容器不同,它是不能指定位置插入的,它的元素插入過程是按排序規則插入的。set雖然不能指定位置插入,但是在插入和刪除操作較快,因為...

set和multiset小練習

set容器小練習.cpp 此檔案包含 main 函式。程式執行將在此處開始並結束。題目 include include include include using namespace std struct calltable void calltable init const string name...