C++ map에 대한 간단한 사용방법입니다.
2021. 12. 4 - 최초작성
map은 고유의 key 값을 사용하여 값을 저장하는 컨테이너로 키값에 따라 정렬이됩니다.
다음처럼 키와 값의 타입을 지정하여 map을 선언합니다.
첫번째가 키의 타입, 두번째가 값의 타입입니다.
std::map<int, int> map_a;
앞에서 지정한 타입에 맞추어 키와 값을 입력해야 합니다.
배열과 유사한 방식으로 사용됩니다. 키는 인덱스로 사용되며 값은 대입되는 값입니다.
map_a[1] = 300;
map_a[3] = 200;
map_a[2] = 100;
다음처럼 for문을 사용하여 map 원소에 접근할 수 있습니다.
std::map<int, int>::iterator it;
for(it = map_a.begin(); it != map_a.end(); ++it)
원소의 first는 키를 가리키며 second는 값을 가리킵니다.
std::cout << "first는 인덱스와 같다. - it->fisrt = " << it->first << std::endl;
std::cout << "second는 대입한 값과 같다. - it->second = " << it->second << std::endl;
다음처럼 map 원소 하나의 값을 출력할 수도 있습니다.
std::cout << map_a[2] << std::endl;
#include <iostream> #include <map> int main() { std::map<int, int> map_a; map_a[1] = 300; map_a[3] = 200; map_a[2] = 100; std::map<int, int>::iterator it; for(it = map_a.begin(); it != map_a.end(); ++it) { std::cout << "map_a[" << it->first << "] = " << map_a[it->first] << std::endl; std::cout << "first는 인덱스와 같다. - it->fisrt = " << it->first << std::endl; std::cout << "second는 대입한 값과 같다. - it->second = " << it->second << std::endl; std::cout << std::endl; } } |
실행 결과입니다. 키값 순으로 map의 원소가 출력되는 것을 볼 수 있습니다.
map_a[1] = 300
first는 인덱스와 같다. - it->fisrt = 1
second는 대입한 값과 같다. - it->second = 300
map_a[2] = 100
first는 인덱스와 같다. - it->fisrt = 2
second는 대입한 값과 같다. - it->second = 100
map_a[3] = 200
first는 인덱스와 같다. - it->fisrt = 3
second는 대입한 값과 같다. - it->second = 200
'프로그래밍 노트 > C&C++' 카테고리의 다른 글
C++의 vector로부터 표준편차와 평균 구하기 (0) | 2021.10.10 |
---|---|
C++ 예제 - string에서 영어 대소문자, 숫자 외에 제거하기 (0) | 2021.09.26 |
C++ 예제 - vector에서 특정 원소값 지우기 (0) | 2021.09.22 |
C++ 예제 - set을 사용하여 vector 중복 확인하기 (0) | 2021.09.22 |
C++ set 예제 - 중복 원소 검사 (0) | 2021.09.22 |