C 關聯容器 Multiset and set

2022-07-20 09:27:11 字數 3591 閱讀 8012

/*

*****************set

*/#include

<

iostream

>

#include

<

set>

#include

<

algorithm

>

#include

<

iterator

>

using

namespace

std;

typedef

set<

double

,less

<

double

>

>

doubleset;

//注意》 >間距

intmain()

;doubleset dd(a,a

+size);

ostream_iterator

<

double

>

output(cout,""

);cout

<<

"double set contains: ";

copy(dd.begin(),dd.end(),output);

pair

<

doubleset::const_iterator,

bool

>

p;

//定義乙個pair物件,由doubleset的const_iterator和乙個布林值組成 p=

dd.insert(

13.8

); //

因為容器沒有13.8,13.8被插入,則p.first指向13.8,p.second返回為真

cout

<<

"\n\n

"<<*

(p.first)

<<

(p.second?"

was ":

"was not ")

<<

"insertd";

cout

<<

"\ndoubleset contains:";

copy(dd.begin(),dd.end(),output);p=

dd.insert(

9.5);

//因為set關聯容器不允許重複,9.5已經存在,故沒有被插入,p.second返回為假

cout

<<

"\n\n

"<<*

(p.first)

<<

(p.second?"

was ":

"was not ")

<<

"insertd";

cout

<<

"\ndoubleset contains:";

copy(dd.begin(),dd.end(),output);

cout

<<

endl;

}

muntiset

#include 

<

iostream

>

#include

<

set>

#include

<

algorithm

>

#include

<

iterator

>

using

namespace

std;

typedef multiset

<

int,less

<

int>

>

ims;

//注意》 >間距

intmain()

;ims intmultiset;

ostream_iterator

<

int>

output(cout,""

);cout

<<

"there are curently

"<<

intmultiset.count(15)

<<

"values of 15 in the multiset\n\n";

intmultiset.insert(

15);

intmultiset.insert(

15);

cout

<<

"\nafter insert,there are

"<<

intmultiset.count(15)

<<

"values of 15 in the multiset\n\n";

ims::const_iterator result;

result

=intmultiset.find(

15);

if(result

!=intmultiset.end())

cout

<<

"fond values 15\n";

result

=intmultiset.find(

20);

if(result

==intmultiset.end())

cout

<<

"did not find values 20\n";

intmultiset.insert(a,a

+size);

cout

<<

"\nafter insert,int multiset contains:\n";

copy(intmultiset.begin(),intmultiset.end(),output);

cout

<<

"\n\nlower bound of 22:

"<<*

(intmultiset.lower_bound(

22));

cout

<<

"\n\nupper bound of 22:

"<<*

(intmultiset.upper_bound(

22));

pair

<

ims::const_iterator,ims::const_iterator

>

p;//

p包含兩個成員first,secondp=

intmultiset.equal_range(

22);

//這裡使用equal_range函式確定值22在intmultiset中最早出現的位置和最後一次出現的位置

cout

<<

"\n\nequal_range of 22 :

"<<

"\n lower bound:

"<<*

(p.first)

<<

"\n upper bound

"<<*

(p.second);

cout

<<

endl;

return0;

}

編輯器載入中...

c 關聯容器

1.map建構函式 mapm 普通初始化 mapm m2 複製初始化法 mapm b,e 另乙個map物件的迭代器初始化法 注意 1 鍵值型別必須定義 操作符號,資料訪問時需要呼叫。2 m aaa 下表訪問方式導致的結果是,若鍵對應的值不存在,則插入該鍵值對應的預設值。2.map插入操作 m.ins...

C 關聯容器

1.關聯容器是通過關鍵字來儲存和訪問資料的。關聯容器分為兩大類 map和set。其中,map是通過鍵值對來操作的,這裡的鍵就是關鍵字,值就是對應的資料。例如 mapm 定義了乙個空的map變數m,它的關鍵字型別是int,關鍵字對應的值的型別是int。可以將map理解成為函式,關鍵字是自變數,關鍵字對...

C 關聯容器

1 關聯容器定義 關聯容器和順序容器的本質差別在於 關聯容器通過鍵 key 儲存和讀取元素,而順序容器 則通過元素在容器中的位置順序儲存和訪問元素。關聯容器 associative containers 支援通過鍵來高效地查詢和讀取元素。兩個基本的關聯容器型別是 map set。map 的元素以鍵 ...