cloge 이야기
std::set 사용법 본문
...set operator만 해결하면 잘 쓸줄 알았다...
하지만 아니었다. 어떤 문제에서 set을 쓰다가 잘못써서 10번도 넘게 제출했다...(APIO 2007 Backup...)
다시 한 번 set을 잘 쓰길 기원하며 정리한다.
insert( data key ) - set에 원소를 넣는다. 넣는 형태는 정의한 자료형
begin() - 정의된 set의 operator 연산의 첫 원소의 주소를 반환한다.
end() - 정의된 set의 마지막 원소 다음번 주소를 반환한다. 즉, 마지막 원소를 가리키고 있는 iterator를 ++ 시키면 end() 주소를 가리키게 된다.
rbegin() - 정의된 set의 operator 연산의 마지막 원소의 주소를 반환한다.
lower_bound( data key ) - data 자료형의 key의 operator 연산 상 이상인 첫 원소의 주소를 반환한다.
upper_bound( data key ) - data 자료형의 key의 operator 연산 상 초과인 첫 원소의 주소를 반환한다.
count( data key ) - multiset에서 의미가 있는 함수, key에 해당하는 원소의 수를 반환한다.
find( data key ) - key에 해당하는 자료가 존재하면 그 위치를 반환, 아니면 end() 위치를 반환한다. multiset에서는 같은 key 중 하나를 반환한다.
size() - set에 들어있는 key의 수를 반환한다, multiset에서는 중복되는 key들도 센다.
erase( set<data> :: iterator ) set의 iterator에 해당하는 주소 공간을 set에서 지운다, 존재하지 않는 주소 공간을 지우려고 하면 RTE!! 물론 end()도 RTE다. (본인은 이것에서 헤멨다....ㅠㅠㅠ)
clear() - set의 모든 원소를 지운다.
empty() - set 내 원소가 존재하지 않으면 1, 아니면 0을 반환한다.
하하...
다시는 헤메지 않도록 해야...하는데 말이다. ㅇㅅㅇ
'Algorithm' 카테고리의 다른 글
Shortest Path Algorithm - Floyd-Warshall (0) | 2016.08.24 |
---|---|
Shortest Path Algorithm - Bellman-Ford (0) | 2016.08.23 |
Shortest Path Algorithm - Dijkstra (0) | 2016.08.22 |
Disjoint Set Union (0) | 2016.08.21 |
Sparse Table (0) | 2016.08.20 |