map은 key와 value의 쌍으로 이루어진 연관 컨테이너 입니다.
key는 순서를 지정하는데 사용되며 value는 key에 연결이 됩니다.
선언방법을 알아봅시다.
#include<map>
먼저 전처리기에 include를 해야합니다.
int형의 키와 stirng의 value를 저장하는
ts_map라는 이름의 map를 만든다고 한다면
map<int,string> ts_map;
이런식으로 선언을 하면 됩니다.
사용방법을 알아 봅시다.
key에 value를 연결하는 형식으로
값을 넣어주며 여러가지 방법이 있습니다.
기본적으로 insert를 사용하여 값을 넣어줄때에는
pair를 만들어주어서 삽입하는 방식이 있습니다.
ts_map.insert(make_pair(key,value));
pair를 직접 만들어서 삽입하는 방식도 있습니다.
ts_map.insert(pair<int,string>(key,value));
자동으로 키를 만들고 값을 넣어주는
방법도 있습니다.
ts_map[key] = value;
지우는방법도 여러가지 있습니다.
find를 사용하여 key값을 찾아서
삭제하는 방법입니다.
ts_map.erase(ts_map.find(key));
key값을 직접 입력하여 삭제하는 방법입니다.
ts_map.erase(key);
key의 데이터의 갯수를 확인하는 방법도 있습니다.
count를 사용하면 key의 데이터의 수를 반환 하게 됩니다.
cout<<ts_map.count(key);
map의 데이터를 전체 삭제하는 방법도 있습니다.
clear를 사용하면 모든 데이터가 삭제 됩니다.
ts_map.clear();
안의 데이터가 비어 있는지 확인하는 방법도 있습니다.
empty 사용하면 안의 데이터의 수를 반환 하게 됩니다.
if (ts_map.empty())
empty자체가 bool타입으로 반환값을 갖기 때문에
이런식으로 조건문으로 사용하시면 됩니다.
간단한 예제 입니다.
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main()
{
map<int, string> ts_map;
ts_map[0] = "zero";
ts_map[1] = "one";
ts_map.insert(pair<int, string>(2, "two"));
ts_map.insert(make_pair(3,"three"));
cout <<"0의 count : "<< ts_map.count(0) << endl;
for (auto it = ts_map.begin(); it != ts_map.end(); it++)
{
cout << it->first << "," << it->second << endl;
}
cout << "삭제" << endl;
ts_map.erase(0);
ts_map.erase(ts_map.find(1));
cout << "0의 count : " << ts_map.count(0) << endl;
for (auto it = ts_map.begin(); it != ts_map.end(); it++)
{
cout << it->first <<"," << it->second << endl;
}
ts_map.clear();
if (ts_map.empty())
cout << "empty!" << endl;
return 0;
}
실행화면 입니다.
'프로그래밍 > c++ STL' 카테고리의 다른 글
[c++ STL] Multimap 기본 사용법 및 예제 (1) | 2020.02.04 |
---|---|
[c++ STL] List 기본 사용법 및 예제 (0) | 2020.02.03 |
[c++ STL] Stack 기본 사용법 및 예제 (0) | 2020.01.31 |
[c++ STL] Queue 기본 사용법 및 예제 (0) | 2020.01.31 |
[c++ STL] Deque 기본 사용법 및 예제 (0) | 2020.01.10 |