算法笔记

算法笔记

记参加CCCC和蓝桥杯学习到的算法知识

一些基础库

set

set(集合)在算法中主要起到的作用是元素不重复,还能够快速得到集合的大小以及集合的一些操作,例如交集,并集,差集..

简单的set操作

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <set>

using namespace std;

int main()
{
set<int> s;
s.insert(1); // 插入元素
cout << s.size() << endl; // 获取集合大小
return 0;
}

交集,并集,差集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <set>
#include <iterator>
#include <algorithm>

using namespace std;
//求两个集合的和(并集)、差、交集
//set库提供set容器,iterator库提供迭代器,algorithm库提供集合操作(故也可以对其他容器进行集合操作)
int main()
{
set<int> a, b;
set<int> c, d, e;
a.insert(1);
a.insert(2);
b.insert(2);
b.insert(3);

// 并集
set_union(a.begin(), a.end(), b.begin(), b.end(), insert_iterator<set<int>>(c, c.begin()));

// 差集
set_difference(a.begin(), a.end(), b.begin(), b.end(), insert_iterator<set<int>>(d,d.begin()));

// 交集
set_intersection(a.begin(), a.end(), b.begin(), b.end(), insert_iterator<set<int>>(e, e.begin()));
return 0;
}

评论