STL容器(set) 2023/4/21
set容器
s.empty(); 判断是否为空,是返回1,否则返回0
s.clear();清空当前集合
s.begin(),s.end();返回集合的首尾迭代器(可理解为数组的下标)
s.insert(k);向集合中插入元素k
s.erase(k);删除k
s.find();返回指向元素k的迭代器,如果不存在就返回s.end(),这个性质可以用来判断集合中有没有这个元素
不重复数字
题目描述
给定 n 个数,要求把其中重复的去掉,只保留第一次出现的数。
输入格式
本题有多组数据。
第一行一个整数 T,表示数据组数。
对于每组数据:
第一行一个整数 n。
第二行 n 个数,表示给定的数。
输出格式
对于每组数据,输出一行,为去重后剩下的数,两个数之间用一个空格隔开。
输入
2 11 1 2 18 3 3 19 2 3 6 5 4 6 1 2 3 4 5 6
输出
1 2 18 3 19 6 5 4 1 2 3 4 5 6
#include <iostream>
#include <vector>
#include <set>
#define int long long
using namespace std;
signed main()
{int t;cin >> t;while(t --){vector<int> a;set<int> s;int n,k=0;cin >> n;for(int i = 0;i < n;i ++){int x;cin >> x;if(s.find(x)!=s.end()) continue;a.push_back(x);s.insert(x);k++;}for(int i = 0;i < k;i ++){printf("%lld ",a[i]);}printf("\\n");}return 0;
}