set容器 map容器

2021-10-18 06:06:33 字數 3892 閱讀 9136

簡介:

本質:

set和multiset區別:

構造:

賦值:

#include

void

printset

(set<

int>

& s)

cout << endl;

}//構造和賦值

void

test01()

intmain()

總結:

函式原型:

#include

void

printset

(set<

int>

& s)

cout << endl;

}//大小

void

test01()

else

}//交換

void

test02()

intmain()

總結:

函式原型:

#include

void

printset

(set<

int>

& s)

cout << endl;

}//插入和刪除

void

test01()

intmain()

總結:

插入 — insert

刪除 — erase

清空 — clear

函式原型:

#include

//查詢和統計

void

test01()

else

//統計

int num = s1.

count(30

);cout <<

"num = "

<< num << endl;

}int

main()

總結:

查詢 — find (返回的是迭代器)

統計 — count (對於set,結果為0或者1)

區別:

#include

//set和multiset區別

void

test01()

else

ret = s.

insert(10

);if(ret.second)

else

//multiset

multiset<

int> ms;

ms.insert(10

);ms.

insert(10

);for(multiset<

int>

::iterator it = ms.

begin()

; it != ms.

end(

); it++

) cout << endl;

}int

main()

總結:

如果不允許插入重複資料可以利用set

如果需要插入重複資料利用multiset

功能描述:

兩種建立方式:

#include

//對組建立

void

test01()

intmain()

主要技術點:

示例一 set存放內建資料型別

#include

class

mycompare};

void

test01()

cout << endl;

//指定排序規則

set<

int,mycompare> s2;

s2.insert(10

);s2.

insert(40

);s2.

insert(20

);s2.

insert(30

);s2.

insert(50

);for(set<

int, mycompare>

::iterator it = s2.

begin()

; it != s2.

end(

); it++

) cout << endl;

}int

main()

總結:利用仿函式可以指定set容器的排序規則

示例二 set存放自定義資料型別

#include

#include

class

person

string m_name;

int m_age;};

class

compareperson};

void

test01()

}int

main()

總結:

對於自定義資料型別,set必須指定排序規則才可以插入資料

簡介:本質:

優點:map和multimap區別:

函式原型:

構造:

賦值:

#include

void

printmap

(map<

int,

int>

&m) cout << endl;

}void

test01()

intmain()

總結:map中所有元素都是成對出現,插入資料時候要使用對組

函式原型:

#include

void

printmap

(map<

int,

int>

&m) cout << endl;

}void

test01()

else

}//交換

void

test02()

intmain()

總結:

統計大小 — size

判斷是否為空 — empty

交換容器 — swap

函式原型:

#include

void

printmap

(map<

int,

int>

&m) cout << endl;

}void

test01()

intmain()

總結:

插入 — insert

刪除 — erase

清空 — clear

函式原型:

#include

//查詢和統計

void

test01()

else

//統計

int num = m.

count(3

);cout <<

"num = "

<< num << endl;

}int

main()

總結:

查詢 — find (返回的是迭代器)

統計 — count (對於map,結果為0或者1)

主要技術點:

#include

class

mycompare};

void

test01()

}int

main()

總結:

set與map和pair容器

set 與map 和pair容器 首先來看看 set集合容器 set集合容器實現了紅黑樹的平衡二叉樹資料結構,在插入元素時它會自動調整二叉樹的排列,把該元素放到適當的位置,並且保證左右子樹平衡。平衡二叉檢索樹採用中序遍歷演算法。對於set,vector map 等等,它們的 前向迭代器 定義是這樣的...

容器篇 set容器(下)

include include include using namespace std void printset set int s set容器中的元素不能是重複的,保持唯一性!multiset容器中是允許出現重複元素的!insert void test01 s1.insert arr,arr s...

map容器即關聯容器

include string include map using namespace std intmain 資料 1.對映和多重對映以容器以鍵 值對 pair物件 的形式管理他們的元素,其元素按照 某種標準對鍵進行排列,預設標準為 排序時比較pair物件的資料成員first的值.相等則比較seco...