C++で、重複を許さない集合setの備忘録です.
問題
abc240 B – Count Distinct Integers
やりたいこと
タイトル通りです. この問題では重複を除いて要素数を知りたいです.
結論
setというデータ構造を利用する.
(setは要素の重複を許さないようです. したがって、どんどんsetの中に要素を入れていけば自動的に重複は排除されます.)
例えば、以下のような入力のときには, 1と2と4の要素数3と出力をしたいです。
6 1 4 1 2 2 1
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
// setの宣言, setに入れる要素はint型
set<int> s;
int x;
for (int i = 0; i < n; i++) {
// 入力をxで受け取り, その後xをsetであるsにinsertします.
cin >> x;
s.insert(x);
}
// 上の入力があった場合, 3が出力されます.
cout << s.size() << endl;
}
コメント