Set 생성 및 요소 추가
Coddy C++ 여정의 로직과 흐름 섹션에 포함된 레슨 — 56개 중 36번째.
이제 집합(set)이 무엇인지 알았으니, 집합을 생성하고 요소를 추가하는 방법을 배워보겠습니다. std::set에 요소를 추가하려면 .insert() 메서드를 사용합니다.
빈 세트(set)를 생성하고 요소를 추가하는 방법은 다음과 같습니다:
std::set<int> numbers;
numbers.insert(5);
numbers.insert(2);
numbers.insert(8);집합(set)의 가장 중요한 특징은 중복을 자동으로 거부한다는 것입니다. 같은 값을 두 번 삽입하려고 하면 집합은 변경되지 않은 상태로 유지됩니다:
numbers.insert(5); // 이것은 또 다른 5를 추가하지 않습니다
numbers.insert(5); // 이것도 마찬가지입니다이 모든 삽입 작업이 끝난 후, 여러분의 세트(set)에는 2, 5, 8이라는 세 개의 고유한 요소만 포함됩니다(자동으로 정렬됨). 5를 삽입하려는 중복된 시도는 단순히 무시되며, 이것이 바로 세트가 고유한 데이터 컬렉션을 유지하는 데 매우 유용한 이유입니다.
챌린지
쉬움std::set에 중복된 값을 포함하여 여러 개의 정수를 추가하고, 최종 크기를 표시하여 중복이 자동으로 무시됨을 증명함으로써 std::set의 고유 요소 특징을 보여주는 프로그램을 작성하세요.
다음과 같은 입력이 제공됩니다:
- 삽입할 정수의 개수를 나타내는 정수
n - 그 다음 세트에 삽입할
n개의 정수
프로그램은 다음을 수행해야 합니다:
- 비어 있는
std::set<int>을 생성합니다. - 삽입할 정수의 개수를 읽습니다.
- 루프를 사용하여 각 정수를 읽고
.insert()메서드를 사용하여 세트에 삽입합니다. - 모든 삽입이 끝난 후,
.size()메서드를 사용하여 세트의 최종 크기를 출력합니다. - 무시된 중복 시도 횟수를 보여주는 메시지를 출력합니다.
다음과 같은 정확한 출력 형식을 사용하세요:
Set size: [final_size]
Duplicates ignored: [number_of_duplicates]무시된 중복 횟수는 총 삽입 시도 횟수와 세트의 최종 크기 사이의 차이로 계산되어야 합니다. 이는 세트가 중복된 값을 거부함으로써 자동으로 고유성을 유지한다는 것을 보여주며, 이는 고유 요소 컬렉션을 저장하기 위한 세트의 핵심 기능입니다.
직접 해보기
#include <iostream>
#include <set>
using namespace std;
int main() {
// 삽입할 정수의 개수를 읽습니다
int n;
cin >> n;
// 빈 세트(set)를 생성합니다
set<int> mySet;
// TODO: 여기에 코드를 작성하세요
// 루프를 사용하여 n개의 정수를 읽고 세트에 삽입합니다
// 무시된 중복 항목의 개수를 계산합니다
// 결과 출력
cout << "Set size: " << mySet.size() << endl;
cout << "Duplicates ignored: " << /* 중복 계산 */ << endl;
return 0;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.