C++ STL Unordered Set 사용법

C++Beginner
지금 연습하기

소개

이 랩에서는 C++ 에서 std::unordered_set을 구현하고 사용하는 방법을 배우게 됩니다. Set 은 목록의 고유한 값을 저장하고 자동으로 정렬하는 데 사용됩니다. Unordered set 은 set 과 유사하지만, 요소를 정렬하지 않고 임의의 순서로 저장한다는 점이 다릅니다. 또한 중복된 요소는 자동으로 제거합니다.

프로젝트 디렉토리 설정

먼저, 코드를 담을 프로젝트 폴더를 생성합니다. 터미널을 열고 cd 명령어를 사용하여 해당 폴더로 이동합니다.

cd ~/project
touch main.cpp

원하는 텍스트 편집기를 사용하여 main.cpp라는 새 파일을 생성합니다.

Unordered Set 의 작동 방식을 보여주는 프로그램 생성

이 단계에서는 C++ 에서 std::unordered_set의 작동을 시연하는 프로그램을 작성합니다. 이 프로그램은 빈 std::unordered_set을 선언하고, 일부 요소로 채우고, 요소를 삭제한 다음, set 의 요소를 출력합니다.

필요한 라이브러리를 포함하고 반복자를 사용하여 unordered set 의 요소를 출력하는 show 함수를 생성하는 것으로 시작합니다.

#include <iostream>
#include <unordered_set>

void show(std::unordered_set<int> s)
{
    std::unordered_set<int>::iterator it;

    for (it = s.begin(); it != s.end(); ++it)
    {
        std::cout << *it << " ";
    }
}

Unordered Set 에 정수 채우기

이 단계에서는 insert 메서드를 사용하여 std::unordered_set을 여섯 개의 정수로 채웁니다.

int main()
{
    std::unordered_set<int> s;
    s.insert(5);
    s.insert(39);
    s.insert(64);
    s.insert(82);
    s.insert(35);
    s.insert(54);

    std::cout << "The elements of the unordered set are: \n";
    show(s);

    return 0;
}

Unordered Set 에서 요소 삭제

이 단계에서는 erase 메서드를 사용하여 unordered set 에서 요소를 삭제합니다. 그런 다음 업데이트된 set 을 출력합니다.

int main()
{
    std::unordered_set<int> s;
    s.insert(5);
    s.insert(39);
    s.insert(64);
    s.insert(82);
    s.insert(35);
    s.insert(54);

    std::cout << "The elements of the unordered set are: \n";
    show(s);

    s.erase(39);
    std::cout << "\nAfter deleting the element 39 from the unordered set using the erase() method, it becomes: \n";
    show(s);

    return 0;
}

코드 컴파일 및 실행

코드를 컴파일하고 실행하려면 터미널에서 다음 명령을 사용하십시오.

g++ main.cpp -o main && ./main

출력 결과는 다음과 같습니다.

The elements of the unordered set are:
54 35 5 64 39 82
After deleting the element 39 from the unordered set using the erase() method, it becomes:
54 35 5 64 82

전체 main.cpp 코드

다음은 main.cpp의 전체 코드입니다.

#include <iostream>
#include <unordered_set>

void show(std::unordered_set<int> s)
{
    std::unordered_set<int>::iterator it;

    for (it = s.begin(); it != s.end(); ++it)
    {
        std::cout << *it << " ";
    }
}

int main()
{
    std::unordered_set<int> s;
    s.insert(5);
    s.insert(39);
    s.insert(64);
    s.insert(82);
    s.insert(35);
    s.insert(54);

    std::cout << "The elements of the unordered set are: \n";
    show(s);

    s.erase(39);
    std::cout << "\nAfter deleting the element 39 from the unordered set using the erase() method, it becomes: \n";
    show(s);

    return 0;
}

요약

이 랩에서는 C++ 에서 std::unordered_set을 구현하고 사용하는 방법을 배웠습니다. std::unordered_set은 고유한 값을 저장하는 데 사용되며 중복을 자동으로 제거합니다. std::set과 달리, 요소들을 정렬하지 않고 임의의 순서로 저장합니다.