🐣 알고리즘 삐약/✌️알고리즘 개념 잡기

[Map] Map | C++

우주수첩 2022. 4. 20. 02:16
728x90

Map 

  • <key, value> pair를 관리하기 위한 data structure
  • set과 마찬가지로 c++에서는 red-black tree로 map library를 구현하기에 searching 과 update 모두 O(log n)시간 에 수행 가능하다.
  • Map에서 각 key는 반드시 unique해야하며 C++에서는 중복된 key값을 허용하는 multimap library를 따로 지원한다.
  • unordered_set과 마찬가지로 c++에서는 hash table로 구현 된 unordered_map library 또한 지원한다.

 

# example

map<string,int> m;
m["monkey"] =4;
m["banana"] =3;

cout<< m["banana"] << '\n' // 3

key "banana"에 대응되는 value를 출력한다.

 

 

# Map에서 존재하지 않는 key에 접근하는 경우

map<string,int> m;
cout<<m["adasd"] << '\n';

=>  <new key,0>을 자동으로 map에 추가한다.

 

 

# Map 에 key가 존재하는 지 확인 

# count | find

if(m.count("sdfs")){
	//exists
}

 

 

# Map에 저장된 모든 key와 대응하는 value 출력

for( auto x :m ){
	cout<<x.first<<" "<<x.second<<'\n';
}

 

728x90