기타/C++ 문법

<set> 자료구조

배발자 2022. 1. 14.

목차

    반응형

    중복제거를 하기위해 쓰이는 자료구조이다.

    많이 쓰이는 자료구조는 아니지만 문제에서 모든값의 중복을 없애고

    오름차순으로 정렬하라는 문제가 나온다면 사용할 수 있다. 

     

    헤더로 set을 갖고 set <타입> 변수명 ;  으로 생성 할 수 있다. 

    set는 균형 잡힌 이진트리로 자동으로 오름차순으로 정렬이 된다. 

     

    만약 set <int> s 라는 set을 생성하고

    값을 집어 넣을 때는 s.insert(값) 을 넣어주면 된다. 

    삭제를 할 때는 s.erase(값)을 해준다. 

     

    다음 코드를 보고 문법과 쓰임을 알아두자 

    
      
    #include <iostream>
    #include <vector>
    #include <set>
    using namespace std;
    int main() {
    vector <int> a = { 1,2,1,2,3,1,2,3 };
    set <int> s;
    for (int i = 0; i < a.size(); i++) {
    s.insert(a[i]);
    }
    cout << s.size() << endl;
    for (auto it = s.begin(); it != s.end(); it++) {
    cout << *it << " ";
    }
    cout << endl;
    //또는
    for (auto x : s)cout << x << " ";
    cout << endl;
    s.erase(3); //원소 지우기
    for (auto x : s)cout << x << " ";
    cout << endl;
    if (s.find(3) == s.end()) cout << "false"; //원소 3이 끝에 있으면
    else cout << "true";
    return 0;
    }
    반응형

    '기타 > C++ 문법' 카테고리의 다른 글

    <resize> 벡터 초기화  (0) 2022.01.19
    <reverse> 문자열 역정렬  (0) 2022.01.17
    <priority_queue> 자료구조  (0) 2022.01.14
    <map> 자료구조  (0) 2022.01.14
    <sort> 오름차순, 내림차순으로 정렬하자  (0) 2022.01.14

    댓글