c++ set容器

#include <iostream>

#include <string>

#include <fstream>

#include <vector>

#include <algorithm>

#include <deque>

#include <stack>

#include <queue>

#include <list>

#include <set>

using namespace std;

void printSet(const set<int> &s)

{

for (set<int>::const_iterator it = s.begin(); it != s.end(); it++)

{

cout << *it << " ";

}

cout << endl;

}

void test01()

{

set<int> s1;

s1.insert(10);

s1.insert(30);

s1.insert(50);

s1.insert(20);

s1.insert(40);

s1.erase(s1.begin());

s1.erase(50);

printSet(s1);

int num=s1.count(30);

cout << "num = " << num << endl;

if(s1.empty())

{

cout << "s1 is empty" << endl;

}

else

{

cout << "s1 is not empty, size = " << s1.size() << endl;

}

}

void test02()

{

set<int> s1;

pair<set<int>::iterator, bool> ret = s1.insert(10);

if(ret.second)

{

cout << "insert " << *(ret.first) << " success" << endl;

}

else

{

cout << "insert " << *(ret.first) << " failed" << endl;

}

ret = s1.insert(10);

if(ret.second)

{

cout << "insert " << *(ret.first) << " success" << endl;

}

else

{

cout << "insert " << *(ret.first) << " failed" << endl;

}

multiset<int> ms;

ms.insert(10);

ms.insert(10);

for(multiset<int>::iterator it = ms.begin(); it != ms.end(); it++)

{

cout << *it << " ";

}

cout << endl;

}

void test03()

{

pair<string,int> p("hello",1);

cout << p.first << " " << p.second << endl;

pair<string,int> p2(p);

cout << p2.first << " " << p2.second << endl;

}

class MyCompare

{

public:

bool operator()(int v1,int v2)const

{

return v1>v2;

}

};

void test05()

{

set<int,MyCompare> s5;

s5.insert(10);

s5.insert(20);

s5.insert(30);

for(set<int,MyCompare>::iterator it = s5.begin(); it != s5.end(); it++)

{

cout << *it << " ";

}

}

class Person

{

public:

Person(string name,int age)

{

this->m_Name = name;

this->m_Age = age;

}

string m_Name;

int m_Age;

};

class PersonCompare

{

public:

bool operator()(const Person &p1, const Person &p2)const

{

return p1.m_Age > p2.m_Age;

}

};

void test06()

{

set<Person,PersonCompare> s1;

Person p1("aaa",10);

Person p2("bbb",20);

Person p3("ccc",30);

s1.insert(p1);

s1.insert(p2);

s1.insert(p3);

for(set<Person>::iterator it = s1.begin(); it != s1.end(); it++)

{

cout << "name = " << it->m_Name << " age = " << it->m_Age << endl;

}

}

int main()

{

//test01();

//test02();

//test03();

//test05();

test06();

return 0;

system("pause");

}

相关推荐
Legendary_0081 小时前
LDR6500:USB‑C DRP PD协议芯片技术详解与应用实践
c语言·开发语言
_深海凉_2 小时前
LeetCode热题100-寻找两个正序数组的中位数
算法·leetcode·职场和发展
2301_800976932 小时前
正则表达式
开发语言·python·正则表达式
故事还在继续吗2 小时前
C++20关键特性
开发语言·c++·c++20
青少儿编程课堂3 小时前
2026青少儿信息素养大赛备赛指南!Python/Scratch/C++备考要点
开发语言·c++·python
旖-旎3 小时前
深搜练习(电话号码字母组合)(3)
c++·算法·力扣·深度优先遍历
谭欣辰3 小时前
C++快速幂完整实战讲解
算法·决策树·机器学习
Mr_pyx3 小时前
【LeetHOT100】随机链表的复制——Java多解法详解
算法·深度优先
AIFarmer3 小时前
【无标题】
开发语言·c++·算法