集合
Coddy C++ 标准模板库 课程的第 8 课,共 23 课。
在这一章中,你将学习关联容器以及它们的工作方式。我们将从集合这种数据结构开始。
C++ 的集合是一种关联容器,用于按排序顺序存储相同类型的唯一元素。这意味着每个元素在集合中只能出现一次。
集合常用于竞赛编程。当你需要存储经过排序的唯一元素时,使用集合可以避免花费更多时间和复杂度来使用其他数据结构,例如数组、排序算法和删除重复元素。
set<int> mySet = {5, 10, 3, 5};我们使用 #include <set> 头文件来实现集合,也可以像之前的课中提到的那样,包含所有头文件:#include <bits/stdc++.h>
set<int> mySet = {5, 10, 3, 5};
for (int i = mySet.begin(); i != mySet.end(); i++)
cout << *i << " ";Output:
3 5 10如上所示,我们声明了一个带有初始值的集合。我们使用一个指向第一个元素的迭代器,遍历集合并打印所有元素。可以看到,集合会自动删除重复元素,并按从小到大的顺序对元素排序。
我们使用 insert() 方法向集合中插入元素。
mySet.insert(50);此外,元素添加到集合后,其值不能修改。你只能删除元素并添加新元素。
集合方法
| 方法 | 功能 |
| begin() | 返回一个指向集合第一个元素的迭代器 |
| end() | 返回一个指向集合最后一个元素的迭代器 |
| size() | 返回集合中的元素数量 |
| empty() | 返回集合是否为空,空时为 1,否则为 0 |
| count() | 如果集合中存在某个元素,则返回 1,否则返回 0 |
挑战
简单给定输入的 10 个数字。使用集合,只输出不重复的数字。
Input
5
10
1
5
3
5
10
8
6
7Output
5
10
1
3
8
6
7亲手试试
#include <set>
#include <iostream>
using namespace std;
int main()
{
// Enter your code here
return 0;
}C++ 标准模板库中的所有课
自己练习: C++ 在线编译器