まとめ:重複のない数値
CoddyのC++ジャーニー「論理と制御フロー」セクションの一部 — レッスン 40/56。
チャレンジ
簡単一連の整数を読み込み、std::set を使用して重複を自動的に取り除き、一意の(ユニークな)数値の数を出力するプログラムを作成してください。これは、手動で重複チェックを行うことなく、一意の要素のコレクションを維持するという、セット(集合)の主な利点を示すものです。
以下の入力が提供されます:
- 入力される数値の数を示す整数
n - その後に処理される
n個の整数
プログラムの要件:
- 空の
std::set<int>を作成する - 入力される整数の数を読み込む
- ループを使用して各整数を読み込み、
.insert()メソッドを使用してセットに挿入する - すべての数値を処理した後、
.size()メソッドを使用して一意の数値の数を取得する - 見つかった一意の数値の数を示す結果を出力する
以下の正確な出力形式を使用してください:
Unique numbers: [count]セットは重複の削除を自動的に処理します。すでに存在する数値を挿入しようとすると、セットはその重複した挿入を無視します。つまり、手動で重複をチェックする必要はありません。単にすべての数値を挿入するだけで、セットが自動的に一意性を維持してくれます。セットの最終的なサイズは、入力に含まれていた個別の数値の数を正確に表します。
自分で試してみよう
#include <iostream>
#include <set>
using namespace std;
int main() {
// 整数の数を読み込む
int n;
cin >> n;
// 一意の整数を格納するための空のセットを作成する
set<int> uniqueNumbers;
// TODO: ここにコードを記述してください
// ループを使用してn個の整数を読み込み、セットに挿入します
// 結果を出力する
cout << "Unique numbers: " << uniqueNumbers.size() << endl;
return 0;
}