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 |
Tags
- WinAPI
- list
- Deque
- Algorithm
- directx
- set
- Arduino
- 수광 소자
- queue
- 운영체제
- stl
- C언어
- Array
- 아두이노
- c++
- 시스템프로그래밍
- LineTracer
- priority_queue
- 자료구조
- Stack
- arduino compiler
- 라인트레이서
- 컴퓨터 그래픽스
- 아두이노 컴파일러
- 아두이노 소스
- vector
- Visual Micro
- 통계학
- map
- html
Archives
- Today
- Total
Kim's Programming
Map - 맴버변수 본문
Map은 이진탐색트리형태의 자료구조형입니다. Map은 key값을 통해 정렬을 하고 key와 함께 값을 저장합니다.
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 77 78 79 | #include<iostream> #include<string> #include<map> class CompareClass { public: bool operator () (const int& left ,const int& right) { 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::map<int, std::string> Target_Map) { for (std::map<int, std::string>::iterator IterPos = Target_Map.begin(); IterPos != Target_Map.end(); ++IterPos) std::cout << "Key->" << IterPos->first << ", Value->" << IterPos->second << " "; std::cout << std::endl; } void print(std::map<int,std::string,CompareClass> Target_Map) { for (std::map<int, std::string>::iterator IterPos = Target_Map.begin(); IterPos != Target_Map.end(); ++IterPos) std::cout << "Key->" << IterPos->first << ", Value->" << IterPos->second << " "; std::cout << std::endl; } void print(std::map<int, std::string, bool(*)(int, int)> Target_Map) { for (std::map<int, std::string>::iterator IterPos = Target_Map.begin(); IterPos != Target_Map.end(); ++IterPos) std::cout << "Key->" << IterPos->first << ", Value->" << IterPos->second << " "; std::cout << std::endl; } void main() { std::map<int, std::string> Map1; Map1[1] = "First"; Map1[2] = "Second"; Map1[3] = "Third"; Map1[4] = "Fourth"; std::map<int, std::string> Map2(Map1.begin(), Map1.end()); std::map<int, std::string> Map3(Map2); std::map<int, std::string, CompareClass> Map4; bool(*functionPtr)(int, int) = Compare; std::map<int, std::string, bool(*)(int, int)> Map5(functionPtr); print(Map1); print(Map2); print(Map3); print(Map4); print(Map5); std::map<int, std::string>::key_type; std::map<int, std::string>::mapped_type; std::map<int, std::string>::value_type; std::map<int, std::string>::value_compare; std::map<int, std::string>::key_compare; std::map<int, std::string>::allocator_type; std::map<int, std::string>::reference; std::map<int, std::string>::const_reference; std::map<int, std::string>::pointer; std::map<int, std::string>::const_pointer; std::map<int, std::string>::iterator; std::map<int, std::string>::const_iterator; std::map<int, std::string>::reverse_iterator; std::map<int, std::string>::const_reverse_iterator; std::map<int, std::string>::difference_type; std::map<int, std::string>::size_type; } | cs |
Map은 다음과 같이 선언합니다.
- Map은 45,51,52,53,55줄과 같은 방법으로 선언할 수 있습니다.
- 일반적으로 선언하는 방법입니다.(45줄)
- 선언후 이터레이터를 이용하여 그 사이에 있는 데이터들을 이용하여 초기화합니다.(51줄)
- 선언후 다른 map을 이용하여 초기화합니다.(52줄)
- 비교용 클래스를 이용하여 map 정렬 알고리즘을 정하여 선언합니다.(53줄)
- 비교용 함수를 이용하여 map 정렬 알고리즘을 정하여 선언합니다. (55줄)
- Map은 다음과 같은 멤버변수가 있습니다.
멤버이름
내용
비고
key_type
템플릿 첫 번째 파라메터
mapped_type
템플릿 두 번째 파라메터
value_type
pair 형의 value_type
key_compare
템플릿 세 번쨰 파라메터
value_compare
요소 비교를 위한 중첩함수
allocator_type
템플릿 네 번째 파라메터
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_iterartor
value_type에 대한 역 양방향접근 반복자
const_reverse_iterator
value_type에 대한 const 영 양방향 접근 반복자
difference_type
signed integral 형, 이터레이터 차이 구분
size_type
unsigned integral 형, 사이즈 대입
'STL - Container > Container - Map' 카테고리의 다른 글
Map - Clear() (0) | 2016.02.01 |
---|---|
Map - cend() (0) | 2016.02.01 |
Map - cbegin() (0) | 2016.02.01 |
Map - begin() (0) | 2016.02.01 |
Map - at() (0) | 2016.02.01 |