查看“︁STL例子”︁的源代码
←
STL例子
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
* [[STL容器库常用内容]] ==明明的随机数== ===朴素排序后枚举做法=== <syntaxhighlight lang="cpp" line> #include <bits/stdc++.h> using namespace std; const int MAXN = 1000000; const int MAXAI = 100000; int n; int a[MAXN + 5]; void work() { cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; sort(a + 1, a + n + 1); int cnt = 1; for (int i = 2; i <= n; i++) if (a[i] != a[i - 1]) cnt++; cout << cnt << "\n"; cout << a[1] << " "; for (int i = 2; i <= n; i++) if (a[i] != a[i - 1]) cout << a[i] << " "; } int main() { ios::sync_with_stdio(false); cin.tie(0); work(); return 0; } </syntaxhighlight> ===使用 unique 去重=== <syntaxhighlight lang="cpp" line> int n; int a[MAXN + 5]; void work() { cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; sort(a + 1, a + n + 1); int nn = unique(a + 1, a + n + 1) - a - 1; cout << nn << "\n"; for (int i = 1; i <= nn; i++) cout << a[i] << " "; } </syntaxhighlight> ===vector 排序后 unique 去重=== <syntaxhighlight lang="cpp" line> int n; vector<int> a; void work() { cin >> n; for (int i = 1; i <= n; i++) { int x; cin >> x; a.push_back(x); } sort(a.begin(), a.end()); int nn = unique(a.begin(), a.end()) - a.begin(); cout << nn << "\n"; for (int i = 0; i <= nn - 1; i++) cout << a[i] << " "; } </syntaxhighlight> ===vector 排序后迭代器枚举=== <syntaxhighlight lang="cpp" line> int n; vector<int> a; void work() { cin >> n; for (int i = 1; i <= n; i++) { int x; cin >> x; a.push_back(x); } sort(a.begin(), a.end()); // [a.begin(), R) vector<int>::iterator R = unique(a.begin(), a.end()); cout << (R - a.begin()) << "\n"; for (auto it = a.begin(); it != R; it++) cout << (*it) << " "; } </syntaxhighlight> ===朴素计数做法=== <syntaxhighlight lang="cpp" line> int n; int a[MAXN + 5]; int cnt[MAXAI + 5]; void work() { cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; int ans = 0; for (int i = 1; i <= n; i++) { cnt[a[i]]++; if (cnt[a[i]] == 1) ans++; } cout << ans << "\n"; for (int i = 1; i <= MAXAI; i++) if (cnt[i] >= 1) cout << i << " "; } </syntaxhighlight> ===bitset 判断每个数是否出现=== <syntaxhighlight lang="cpp" line> int n; bitset<MAXAI + 1> cnt; void work() { cin >> n; for (int i = 1; i <= n; i++) { int x; cin >> x; cnt.set(x); } cout << cnt.count() << "\n"; for (int i = 1; i <= MAXAI; i++) if (cnt[i]) cout << i << " "; } </syntaxhighlight> [[Category:STL]]
返回
STL例子
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息