C++ STL Maps
Maps은 associative container이다. key value와 mapped value의 조합으로 구성되는 원소를 저장하는 associative container이다.
std::map <key_type, data_type>
선언하기
map<string, int> m; // creates a map m where key_type is of type string and data_type is of type int
map의 길이
int length = m.size(); // gives the size of the map
map에 삽입하기
m.insert(make_pair("hello", 9)); // here the pair is inserted into the map where the key is "hello" and the value assciated with it is 9
map에서 삭제하기
m.erase(val); // erases the pair from the map where the key_type is val
map에서 특정 키값 찾기
map<string, int>::iterator itr = m.find(val); // gives the iterator to the element val if it is found otherwise returns m.end()
map에서 키 값을 이용해 값 가져오기
m["MAPS"] // get the value stored of the key "MAPS"
예제
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <set>
#include <map>
#include <algorithm>
using namespace std;
int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
int Q; // Q is the number of queries
cin >> Q;
int type, Y;
string X;
map<string, int> m;
for(int i = 0; i < Q; i++) {
cin >> type >> X;
if(type == 1) {
cin >> Y;
m[X] += Y;
}
else if (type == 2) {
m.erase(X);
}
else if (type == 3) {
cout << m[X] << endl;
}
}
return 0;
}
참고
2019/04/23 - [C++] - C++ STL Sets 사용하는 방법과 멤버 함수
2019/04/23 - [C++] - C++ Lower Bound-STL 사용하는 방법
2019/04/23 - [C++] - C++ 반복자란 무엇인가?
2019/04/20 - [C++] - C++ 벡터 특정 원소 지우는 방법 vector.erase()
2019/04/20 - [C++] - C++ vector를 이용해 정렬하는 방법
2019/04/19 - [C++] - C++ 벡터를 이용해서 길이가 다양한 이차원 배열 구현하기
2019/04/04 - [C++] - C++ | #include <bits/stdc++.h> 헤더파일이란 무엇인가?
2019/04/02 - [C++] - C++ 강의 | 조건문 if와 if - else 문 그리고 if - else if -else 문
2019/04/02 - [C] - C/C++ printf 함수에서 실수 소수점 자리와 너비를 지정하는 방법 | 숫자 정렬해서 출력하기, 소수점 아래 자리수 지정하기
2019/04/01 - [C++] - C++ 강의 | 기본 데이터 타입과 형식지정자 그리고 C++의 출력과 입력 scanf와 printf
댓글