STL 集和多集(set multiset)

2021-09-23 21:27:22 字數 2131 閱讀 2614

與基本容器相比,關聯容器更注重快速和高效地檢索資料的能力。這些容器是根據鍵值(key)來檢索資料的,鍵可以是值也可以是容器中的某一成員。這一類中的成員在初始化後都是按一定順序排好序的。

set和multiset 容器類(集和多集):#include

內部它實現: 紅黑樹

插入刪除查詢複雜度log(n)

其中所包含的元素的值是唯一的(map)

允許重複元素

集合(set)是乙個容器,它其中所包含的元素的值是唯一的。這在收集乙個資料的具體值的時候是有用的。集合中的元素按一定的順序排列,並被作 為集合中的例項。如果你需要乙個鍵/值對(pair)來儲存資料,map(也是乙個關聯容器,後面將馬上要講到)是乙個更好的選擇。乙個集合通過乙個鍊錶 來組織,在插入操作和刪除操作上比向量(vector)快,但查詢或新增末尾的元素時會有些慢。

在集合中,所有的成員都是排列好的。如果先後往乙個集中插入:12,2,3,123,5,65

則輸出該集合為:2,3,5,12,65,123

集合(set)與多集(multiset)的區別是:set支援唯一鍵值,set中的值都是特定的,而且只出現一次;而multiset中可以出現副本鍵,同一值可以出現多次。

set和multiset的模板引數

template

在有些編譯器的具體實現中,第三個引數可以省略。第二個引數使用了合適形式的迭代器為鍵定義了特定的關係操作符,並用來在容器中遍歷值時建立順序。集合的迭代器是雙向,同時也是常量的,所以迭代器在使用的時候不能修改元素的值。

set定義了三個建構函式:

1、預設建構函式

explicit set(const compare&=compare());

如:set> set1;

less是乙個標準類,用於形成降序排列函式物件。公升序排列是用greater。

2、通過指定某一預先定義的區間來初始化set物件的建構函式

templateset(inputiterator, inputiterator, const compare&=compare());

如:set>set2(vector1.begin(),vector1.end());

3、複製建構函式

set(const set);

如:set>set3(set2);

set容器詳解:

標頭檔案  #include

定義變數  set myset;

主要成員函式:

multiset操作詳解:

標頭檔案  #include

定義變數  multiset mymulset;

主要成員函式

multiset用法:

#include 

using

namespace

std;

struct ss ;

struct

ltstr

};int

main()

#include 

using

namespace

std;

struct

ss };

intmain()

multiset舉例:

#include #include 

using

namespace

std;

int main(void

) else

if (set1.find(300) != set1.end())

else

int a = ;

multiset

a;a.insert(set1.begin(), set1.end());

a.insert(a, a + 10

); cout

<

for (multiset::iterator p = a.begin();p != a.end();++p)

cout

<< *p << "";

cin.

get();

return0;

}

STL 集和多集(set multiset)

與基本容器相比,關聯容器更注重快速和高效地檢索資料的能力。這些容器是根據鍵值 key 來檢索資料的,鍵可以是值也可以是容器中的某一成員。這一類中的成員在初始化後都是按一定順序排好序的。set和multiset 容器類 集和多集 include 內部它實現 紅黑樹 插入刪除查詢複雜度log n 其中所...

STL 集和多集(set multiset)

與基本容器相比,關聯容器更注重快速和高效地檢索資料的能力。這些容器是根據鍵值 key 來檢索資料的,鍵可以是值也可以是容器中的某一成員。這一類中的成員在初始化後都是按一定順序排好序的。set和multiset 容器類 集和多集 include 內部它實現 紅黑樹 插入刪除查詢複雜度log n 其中所...

set multiset(集與多集)

集與多集 set multiset v與基本容器相比,關聯容器更注重快速和高效地檢索資料的能力。這些容器是根據鍵值 key 來檢索資料的,鍵可以是值也可以是容器中的某一成員。這一類中的成員在初始化後都是按一定順序排好序的。vset 和multiset 容器類 集和多集 include n內部實現 紅...