Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 자료구조
- Visual Micro
- stl
- map
- Array
- 라인트레이서
- 시스템프로그래밍
- vector
- arduino compiler
- C언어
- priority_queue
- 컴퓨터 그래픽스
- 수광 소자
- c++
- Deque
- 아두이노
- WinAPI
- list
- queue
- set
- Arduino
- 아두이노 컴파일러
- LineTracer
- Stack
- 아두이노 소스
- 운영체제
- html
- Algorithm
- directx
- 통계학
Archives
- Today
- Total
Kim's Programming
Set - 멤버변수 본문
Set은 이진탐색트리형태의 자료구조입니다. 그렇기 때문에 탐색속도가 매우 빠른것이 특징입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #include<set> #include<iostream> class CompareClass { public: bool operator()(const int& left, const int& right)const { if (left > right) return true; else return false; } }; bool compare(int left, int right) { if (left < right) return true; else return false; } void print(std::set<int> Target_Set) { for (std::set<int>::iterator IterPos = Target_Set.begin(); IterPos != Target_Set.end(); ++IterPos) std::cout << *IterPos << " "; std::cout << std::endl; } void print(std::set<int,CompareClass> Target_Set) { for (std::set<int>::iterator IterPos = Target_Set.begin(); IterPos != Target_Set.end(); ++IterPos) std::cout << *IterPos << " "; std::cout << std::endl; } void print(std::set<int,bool(*)(int,int)> Target_Set) { for (std::set<int>::iterator IterPos = Target_Set.begin(); IterPos != Target_Set.end(); ++IterPos) std::cout << *IterPos << " "; std::cout << std::endl; } void main() { int Array[] = { 1,3,5,7,9,11 }; std::set<int> Set1; std::set<int> Set2(Array, Array + 3); std::set<int> Set3(Set2); std::set<int> Set4(++Set3.begin(), --Set3.end()); std::set<int, CompareClass> Set5 = { 1,3,5,7,9 }; bool(*compare_pointer)(int, int) = compare; std::set<int, bool(*)(int, int)> Set6(compare_pointer); Set6.insert(3); Set6.insert(5); Set6.insert(1); Set6.insert(2); print(Set1); print(Set2); print(Set3); print(Set4); print(Set5); print(Set6); std::set<int>::key_type; std::set<int>::value_type; std::set<int>::key_compare; std::set<int>::value_compare; std::set<int>::allocator_type; std::set<int>::reference; std::set<int>::const_reference; std::set<int>::pointer; std::set<int>::const_pointer; std::set<int>::iterator; std::set<int>::const_iterator; std::set<int>::reverse_iterator; std::set<int>::const_reverse_iterator; std::set<int>::difference_type; std::set<int>::size_type; } | cs |
set은 다음과 같은 방법으로 선언합니다.
- set은 다음과 같이 선언하게됩니다.(43,44,45,46,47,49줄)
- 기본적으로 선언하는 형태입니다.(43줄)
- 배열의 포인터 두개를 이용하여 그 사이의 데이터들을 이용하여 초기화 합니다.(44줄)
- 생성후 다른 set을 이용하여 초기화를 합니다.(45줄)
- 생성후 다른 이터레이터 2개를 이용하여 초기화를 합니다.(46줄)
- 이진탐색트리에서 탐색하며 삽입할떄 사용하는 비교 기준을 Class를 이용하여 비교합니다.(47줄)
- 이진탐색트리에서 탐색하여 삽입할때 사용하는 비교 기준을 함수를 이용하여 비교합니다. (49줄)
- deque의 멤버변수는 다음과 같습니다.
멤버이름
내용
비고
key_type
템플릿 첫 번째 파라메터
값
value_type
템플릿 첫 번째 파라메터
값
key_compare
템플릿 두 번째 파라메터
비교
value_compare
템플릿 두 번째 파라메터
비교
allocator_type
펨플릿 세 번째 파라메터
alloc
reference
value_type&
const_reference
const value_type&
pointer
value_type*
const_pointer
const value_type*
iterator
value_type에 대한 양방향 접근반복자
const_iterator
value_type에 대한 const 양방향 접근반복자
reverse_iterator
value_type에 대한 역 양방향 접근반복자
const_reverse_iterator
value_type에 대한 const 역 양방향 접근반복자
difference_type
두 이터레이터의 차이
size_type
unsgined integral
'STL - Container > Container - Set' 카테고리의 다른 글
Set - clear() (0) | 2016.01.31 |
---|---|
Set - emplace() (0) | 2016.01.31 |
Set - cend() (0) | 2016.01.31 |
Set - cbegin() (0) | 2016.01.31 |
Set - begin() (0) | 2016.01.31 |