Notice
Recent Posts
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
관리 메뉴

이우의 개발일지

[C/C++] map 함수 / STL 함수 본문

Coding

[C/C++] map 함수 / STL 함수

공대이우 2024. 5. 7. 23:36

C++ map이란?

map은 Key-Value의 관계이다. 중복 허용 X

C++의 map 내부 구현은 검색, 삽입, 삭제가 O(logn)인 레드블랙트리로 구성 

 

#include <iostream>
#include <map>

int main() {

	std::map<std::string, int> m1{
		{"kim", 20},
		{"Lee", 21}
	};

	std::cout << m1["kim"] << std::endl;
    m1["kim"] = 22;
    std::cout << m1["kim"] << std::endl;
    
    m1["park"] = 25; // 새로운 키를 추가하는 방법 
    // m1.insert(std::make_pair("park", 25)); 도 추가하는 방법 중 하나이다. 
}

 

 

map 구성 방법

	std::map<std::string, int> m1{
		{"kim", 20},
		{"Lee", 21}
	};

 

std::map < Key 타입 , Value 타입> 을 입력하면 됩니다.

그 타입에 맞춰 안에 인자를 구성 {"kim", 20} 같이 구성하면 됩니다.

 

map 데이터 삽입 방법

 m1["park"] = 25; // 새로운 키를 추가하는 방법 
// m1.insert(std::make_pair("park", 25)); 도 추가하는 방법 중 하나이다.

 

두 가지 방법으로 데이터 삽입이 가능합니다.

 

1. m1[Key 이름]  = Value 

제일 간단한 방법이고 쉽게 Value를 바꿀 수 있습니다.

 

2. m1.insert(std::make_pair(Key 이름, Value));

조금 복잡하지만 이런 방법도 있다는 걸 알아두시면좋을 것 같습니다.  

 

map 데이터 삭제 방법 

1. 특정위치 요소 삭제

m1.erase(m.begin()+1);

이런 식으로 시작 점에서 +1, 즉 2번째 위치에 있는 요소를 삭제할 수 있습니다.

 

2. Key 값을 기준으로 삭제

m1.erase("park");

이렇게 Key 값을 통해 지울 수 있습니다. 

 

 

반응형