2018년 11월 15일 목요일

std::set 간단 사용 예제


#include <iostream>
#include <set>
#include <functional>

void Result(std::pair<std::set<int>::iterator, bool> * p) {
    if (true == p->second)
        cout << *p->first << " Insert success!" << endl;
    else
        cout << *p->first << " is Exist. Insert Fail! " << endl;
}

int main(){

    std::set<int> s;

    std::pair<std::set<int>::iterator, bool> ins1, ins2;
    ins1 = s.insert(50);
    s.insert(40);
    s.insert(80);
    ins2 = s.insert(40);

    Result(&ins1);
    Result(&ins2);

    std::set<int>::iterator iter;
    for (iter = s.begin(); iter != s.end(); ++iter){
        cout << *iter << " ";
    }

}

output
50 Insert success!
40 is Exist. Insert Fail! 
40 50 80 

std::set 은 유일한 값(키)이 들어 가며 자동정렬이 된다. std::map  은 key 와 value 이지만 std::set 는 key 만 존재한다. 이걸 사용하는 곳은 흔치 않지만 알아두면 간혹 적절하게 사용할 시점이 발견된다.

댓글 없음:

댓글 쓰기