set,multiset容器型別

2021-06-29 07:14:55 字數 601 閱讀 8912

set和multiset會根據特定的排序準則,自動將元素排序。兩者不同處在於multiset允許元素重複而set不允許。

一、集和多集(set 和multiset 容器類)

在使用set和multiset之前,先必須包含標頭檔案

#include

在其中,set和multiset被定義為命名空間std內的class template:

1

namespace

std

第乙個template引數當做元素的value。

第二個引數可有可無,用它來定義排序準則。預設準則less-這是乙個仿函式,以opertor《對元素進行比較,以便完成排序。

第三個template引數可有可無,用它來定義記憶體模型。預設的記憶體模型是allocator,由c++標準程式庫提供。

乙個集合(set)是乙個容器,它其中所包含的元素的值是唯一的。

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

構造:如:set> set1;

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

關聯容器 (set multiset)

關聯容器與序列容器有著根本性的不同,序列容器的元素是按照在容器中的位置來順序儲存和訪問的,而關聯容器的元素是按關鍵元素來儲存和訪問的。關聯容器支援高效的關鍵字查詢與訪問。set實際上是乙個單集合,它的底層是由紅黑樹實現的。set的特性是,所有元素都會根據元素的鍵值自動被排序。set的元素不像map那...

集合set multiset容器部分API總結

1.set容器是一種關聯式容器,在插入資料時會根據鍵值進行排序,不允許出現重複的鍵值。2.set容器不能通過迭代器來修改鍵值,其迭代器不支援隨機訪問.3.multiset允許鍵值重複 include include set 或 multiset include using namespace std...

STL常用容器(七)set multiset容器

簡介 本質 set和multiset區別 功能描述 建立set容器以及賦值 構造 賦值 include void printset set int s cout endl 構造和賦值 void test01 intmain 總結 功能描述 函式原型 include void printset set...