[C++/STL] Map

minzero·2024년 8월 10일
0

Cpp

목록 보기
6/7
post-thumbnail

1. 맵(Map)

맵은 key-value 구조로 원소를 저장할 수 있는 자료구조를 말한다. 보통 map으로 선언하고 삽입한다면 자동으로 key를 기준으로 정렬된다.

2. 멤버 함수

  1. insert(key, value) : key, value 쌍으로 원소를 삽입한다.
  2. erase(key) : 원소를 삭제한다.
  3. clear() : 모든 원소를 삭제한다.
  4. find(key) : key와 관련된 원소 iterator를 반환한다.
  5. size() : 맵의 전체 크기를 반환한다. (원소 개수)
  6. begin() : 첫번째 원소를 가리키는 iterator를 반환한다.
  7. end() : 마지막 원소를 가리키는 iterator를 반환한다.

4. 선언해보자!

#include <map>

int main(){
	//key:string, value:int
	map<string, int> m;
    
    //key, value 삽입 
    //m.insert(make_pair("gildong",1));
    m.insert({"gildong","1"});
    m.insert({"phochacco","2"});
    
    //iterator로 조회
    for (auto it=m.begin(); it!=m.end(); it++){
    
    	cout<< it->first<<" "<<it->second<<endl;
        
    } 
    
    return 0;

}

5. 프로그래머스 추억점수

이름이 적힌 name vector와 추억점수가 기록된 yearining vector를 이용해 각 이름에 해당하는 추억점수 합을 반환한다.

#include <string>
#include <vector>
#include <map>

using namespace std;

vector<int> solution(vector<string> name, vector<int> yearning, vector<vector<string>> photo) {
    vector<int> answer;
    map<string, int> m;
    for (int i=0; i<name.size(); i++){
        m.insert({name[i],yearning[i]});
    }
    
    for (int i=0; i<photo.size(); i++){
        int sum=0;
        for (int j=0; j<photo[i].size(); j++){
            sum+=m[photo[i][j]];
        }
        answer.push_back(sum);
    }
    
    return answer;
}

참고한 블로그
https://kbj96.tistory.com/23
https://life-with-coding.tistory.com/305

profile
Rainbow Girl

0개의 댓글