#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 만 존재한다. 이걸 사용하는 곳은 흔치 않지만 알아두면 간혹 적절하게 사용할 시점이 발견된다.