STL set容器常用API

2021-09-24 10:42:14 字數 2313 閱讀 4187

set容器,容器內部將資料自動排序(平衡二叉樹),不能插入重複元素。multiset可以插入重複元素。不能修改容器中的值,通過刪除值,在插入。

#define _crt_secure_no_warnings#include

#include

#include

#include

using

namespace

std;

struct

mycomapre

};void printmyset(set

&s)

cout

<1. /*

setst;//set預設建構函式:

mulitsetmst; //multiset預設建構函式:

set(const set &st);//拷貝建構函式

insert(elem);//在容器中插入元素。

clear();//清除所有元素

erase(pos);//刪除pos迭代器所指的元素,返回下乙個元素的迭代器。

erase(beg, end);//刪除區間[beg,end)的所有元素 ,返回下乙個元素的迭代器。

erase(elem);//刪除容器中值為elem的元素。

*/void

test01()

else

s.insert(3);

s.insert(9);

s.insert(6);

ret = s.insert(2

);

if(ret.second)

else

//刪除第乙個元素的

s.erase(2

); s.erase(s.begin());

//set容器迭代器什麼型別?雙向迭代器

printmyset(s);

}void print(const

int &val)

void

test02()

//3. set查詢操作

/*find(key);//查詢鍵key是否存在,若存在,返回該鍵的元素的迭代器;若不存在,返回set.end();

count(key);//查詢鍵key的元素個數

lower_bound(keyelem);//返回第乙個key>=keyelem元素的迭代器。

upper_bound(keyelem);//返回第乙個key>keyelem元素的迭代器。

equal_range(keyelem);//返回容器中key與keyelem相等的上下限的兩個迭代器。

*/void

test03()

else

cout

<< "

值為2的元素有:

"<< s.count(12) << "個!"

it = s.lower_bound(2

);

if (it ==s.end())

else

it = s.upper_bound(2

);

if (it ==s.end())

else

cout

<< "

------------------------

"

::iterator, set

::iterator> ret = s.equal_range(2

); cout

<< *(ret.first)

<< *(ret.second) <自定義資料型別

class

person

public

:

string

mname;

intmage;

};struct

personrule

};void

test04()

cout

<< "

----------------------

"

set::iterator it = s.find(person("

aaa", 20

));

if (it ==s.end())

else

}int

main()

發表於

2017-05-02 14:48

天碼丶行滿 閱讀(

...)

編輯收藏

重新整理頁面

返回頂部

STL set集合容器常用用法

set集合容器 實現了紅黑樹的平衡二叉檢索樹的資料結構,插入元素時,它會自動調整二叉樹的排列,把元素放到適當的位置,以保證每個子樹根節點鍵值大於左子樹所有節點的鍵值,小於右子樹所有節點的鍵值 另外,還得保證根節點左子樹的高度與右子樹高度相等。平衡二叉檢索樹使用中序遍歷演算法,檢索效率高於vector...

STLset容器排序

學習目標 set容器預設排序規則為從小到大,掌握如何改變排序規則 主要技術點 利用仿函式,可以改變排序規則 示例一 include include using namespace std set容器排序 class mycompare void test01 cout endl 指定排序規則為從小到...

c 常用容器API

vector 1.vector建構函式 vector v 採用模板實現類實現,預設建構函式 vector v.begin v.end 將v begin end 區間中的元素拷貝給本身 vector n,elem 建構函式將n個elem拷貝給本身 vector const vector vec 拷貝建...