본문 바로가기
오래된 글

C++ STL Maps 사용하는 방법

by pagehit 2019. 4. 23.
반응형

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"

예제

https://www.hackerrank.com/challenges/cpp-maps/problem?h_r%5B%5D%5B%5D%5B%5D%5B%5D=next-challenge&h_r%5B%5D%5B%5D%5B%5D%5B%5D=next-challenge&h_v%5B%5D%5B%5D%5B%5D%5B%5D=zen&h_v%5B%5D%5B%5D%5B%5D%5B%5D=zen&isFullScreen=true

#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

반응형

댓글