프로그래밍언어/C++
[C++]STL map 정리
연어바케트
2021. 10. 8. 15:12
반응형
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/
반응형