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의 고유 요소 기능을 보여주는 프로그램을 작성하세요.
다음과 같은 입력이 제공됩니다:
- 삽입할 정수의 개수를 나타내는 정수
n - 그 다음 세트에 삽입할
n개의 정수
프로그램은 다음을 수행해야 합니다:
- 비어 있는
std::set<int>을 생성합니다. - 삽입할 정수의 개수를 읽습니다.
- 루프를 사용하여 각 정수를 읽고
.insert()메서드를 사용하여 세트에 삽입합니다. - 모든 삽입이 끝난 후,
.size()메서드를 사용하여 세트의 최종 크기를 출력합니다. - 무시된 중복 시도 횟수를 보여주는 메시지를 출력합니다.
다음과 같은 정확한 출력 형식을 사용하세요:
Set size: [final_size]
Duplicates ignored: [number_of_duplicates]무시된 중복 횟수는 총 삽입 시도 횟수와 세트의 최종 크기 사이의 차이로 계산되어야 합니다. 이는 세트가 중복 값을 거부함으로써 자동으로 고유성을 유지한다는 것을 보여주며, 이는 고유 요소 컬렉션을 저장하기 위한 세트의 핵심 기능입니다.
치트 시트
세트를 생성하고 요소를 추가하려면 .insert()를 사용하세요:
std::set<int> numbers;
numbers.insert(5);
numbers.insert(2);
numbers.insert(8);세트는 자동으로 중복을 거부합니다. 동일한 값을 여러 번 삽입해도 하나의 복사본만 유지됩니다:
numbers.insert(5); // 이것은 또 다른 5를 추가하지 않습니다
numbers.insert(5); // 이것도 마찬가지입니다세트 내 고유 요소의 개수를 확인하려면 .size()를 사용하세요.
직접 해보기
#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;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.