#P0165. set & 有序集合
set & 有序集合
题目描述
。
常用函数
s.insert(value)
将 value
添加到集合。
s.erase(value)
将 value
从集合中删除。
s.count(x)
判断 x
是否在集合中,如果存在返回 ,否则返回 。
s.clear()
清空集合。
注意: 包含 #include <set>
。
注意: 插入到集合中的元素会自动升序。
注意: set 基于红黑树实现,遍历比较特殊,不支持 [ ] 访问。可以用迭代器访问。
for(set<int>::iterator it = s.begin(); it != s.end(); ++ it) cout << *it << ' ';
#include <iostream>
#include <set>
using namespace std;
int main()
{
int n;
set<int> s;
cin >> n;
for(int i = 1; i <= n; ++ i)
{
int op, t;
cin >> op;
if(op == 1)
{
cin >> t;
s.insert(t);
}
else if(op == 2)
{
cin >> t;
s.erase(t);
}
else
{
cin >> t;
if(s.count(t)) cout << "Yes" << endl;
else cout << "No" << endl;
}
}
return 0;
}
输入格式
第 行,为一个正整数 。
接下来 行,每行一个正整数 。
若 为 则接着输入一个整数 , 并将其 将 添加到集合。
若 为 则接着输入一个整数 , 并将其 将 从集合删除。
若 为 ,则接着输入一个整数 , 若集合中存在 ,则输出 Yes
,否则输出 No
。
数据保证 为 时集合不为空。
输出格式
共一行,对于每个 操作,输出相应的答案。
数据范围
输入样例:
5
1 1
1 2
1 3
2 2
3 2
输出样例:
No
相关
在下列比赛中: