반응형
1) Map 이란?
특정 순서에 따라 키 값과 매핑된 값의 조합으로 형성된 요소를 저장하는 연관 컨테이너.
Key 와 value 쌍으로 이루어진 이진 트리 구조이다.
2) 헤더파일
#include<map>
3) 변수 선언
std::map<char, int> map_sample1;//map<key, value>
std::map<char, int> map_sample2 = {{'A',10}, {'B',9} };
4) Map 추가
map_sample1.insert(std::make_pair('C', 8));
map_sample2['D'] = 7;
map_sample2.insert(std::pair<char, int>('E', 5));
5) Map 반복문 사용 및 출력
for (auto iter = map_sample2.begin(); iter != map_sample2.end(); iter++)
{
std::cout << iter->first << " " << iter->second << std::endl;
}
6) Map 정렬
Map은 자료 저장 시 자동으로 오름차순으로 정렬 된다. key 값을 기준으로 정렬
std::map<char, int, std::greater<char>> map_sample2 = { {'A',10}, {'B',9}, {'C', 16}, {'Z', 1}};
greater를 사용함으로써 내림차순으로 정렬.
7) lower_bound, upper_bound
lower_bound( k ): k를 포함하여 k 앞에 있는 첫번째 요소를 가리키고 해당 iterator 반환.
upper_bound( k ) : k를 포함하지 않고 k의 뒤에 있는 첫번째 요소를 가리키고 해당 iterator 반환.
std::map<char, int> map_sample2 = {
{'A',10}, {'B',9}, {'C', 16},
{'E', 26}, {'F', 46}, {'K', 77},
{'Z', 1} };
std::cout << "----lower_bound ----" << std::endl;
auto iter = map_sample2.lower_bound('C');
std::cout << iter->first << " " << iter->second << std::endl;
std::cout << "----upper_bound ----" << std::endl;
auto iter1 = map_sample2.upper_bound('F');
std::cout << iter1->first << " " << iter1->second << std::en
참고
c++ reference https://www.cplusplus.com/reference/map/map/
반응형
'프로그래밍언어 > C++' 카테고리의 다른 글
[C++] std::async 비동기, 정책 (std::launch::async, std::launch::deferred) (0) | 2022.04.12 |
---|---|
[C++]람다 표현식, lambda 사용법 (0) | 2022.04.11 |
[C++] 숫자, 알파벳 구별함수(isalnum, isdigit, isalpha) (0) | 2021.09.08 |
[c++] 문자열 형 변환, char * <-> std::string <->CString (0) | 2021.06.21 |
[c++] typedef 란? 사용법 (0) | 2021.04.19 |
댓글