Notice
Recent Posts
Recent Comments
준호씨의 블로그
cpp - set 본문
반응형
set
- set 은 중복되지 않은 값만 저장한다.
- 같은 값은 저장하지 않는다.
- 같은 값을 저장할 경우 결과의 second 값이 false 이다.
- nullptr 은 저장할 수 없다.
#include <iostream>
#include <string>
#include <set>
#include <iterator>
using namespace std;
int main() {
set<string> myset;
myset.insert("hello");
auto result = myset.insert("world");
cout << *result.first << endl; // world
cout << result.second << endl; // true
result = myset.insert("world"); // duplicate value is ignored
cout << *result.first << endl; // world
cout << result.second << endl; // false
myset.insert("!");
myset.insert("apple");
// myset.insert(1); // can't insert not string
// myset.insert(nullptr); // can't insert null
// all elements
/*
!
apple
hello
world
*/
cout << "== begin ==" << endl;
for (set<string>::iterator it = myset.begin(); it != myset.end(); it++) {
cout << *it << endl;
}
cout << "== end ==" << endl;
// simple way
cout << "== begin ==" << endl;
for (const auto &it : myset) {
cout << it << endl;
}
cout << "== end ==" << endl;
// get specific element
set<string>::iterator it = myset.begin();
advance(it, 0);
cout << *it << endl; // !
advance(it, 1);
cout << *it << endl; // apple
// c++11
cout << *std::next(myset.begin(), 0) << endl; // !
cout << *std::next(myset.begin(), 1) << endl; // apple
return 0;
}
references
- http://www.cplusplus.com/reference/set/
- http://www.cplusplus.com/reference/set/set/
- http://www.cplusplus.com/reference/set/set/insert/
- http://www.cplusplus.com/reference/set/set/set/
- http://www.cplusplus.com/reference/iterator/advance/
- https://stackoverflow.com/questions/20477545/element-at-index-in-a-stdset
반응형
'개발이야기' 카테고리의 다른 글
cpp - 문자열 변수명에 sz 를 앞에 붙이는 경우 sz 의 의미 (0) | 2018.10.24 |
---|---|
perl template toolkit (tt) encoding 설정. utf8 한글 깨지는 문제 해결 (0) | 2018.10.22 |
perl - range operator (..). for loop 응용 (0) | 2018.10.18 |
osx - Mojave 업그레이드 후 stdio.h 등 기본 header 파일을 찾지 못하게 된 것 해결. (0) | 2018.10.10 |
osx - DBD::Oracle 설치 (0) | 2018.10.05 |
Comments