본문 바로가기

알고리즘

unordered map (C++)

Hash Map 과 비슷한 Key-Value 자료구조.

 

공식적으로 unordered Map 을 권한다.

 

 

key를 Int형으로 사용할경우 왠만하면 O(1)의 복잡도를 유지한다.

  1. 데이터가 많은 경우에는 unordered_map 이 map 보다 성능면에서 유리합니다. 
  2. 문자열을 키로 사용하는 경우 문자열이 길어질 수록 unordered_map 이 map에 비해 더 성능이 떨어질 수 있습니다. 
  3. 유사도가 높은 문자열 집합을 키로 사용하는 경우에 map 의 성능이 떨어질 수 있습니다. 

#include <unordered_map>

namespace std

unordered_map<string,string> hash_map;

 

[1] Key가 존재하는지 찾기

 

 auto it =    hash_map.find( "key1" );

 if( it != hash_map.end() ){

    cout << hash_map["key1"] ;

    cout << it->first << *it.second  ;

 }

 

[2] insert 사용 보다는  map[ 4 ] 이런식으로 쓰자.

  unordered_map<string,string> hash_map2;

   hash_map2.insert( make_pair (  1, "a" ) ) ;

   hash_map2[1] = "a";    // 삽입도되고 변경도됨 

   hash_map2[1] ;           // 기본으로 0 으로 초기화댐

 

 

 [3] Auto 이터레이터

 

 for( auto& i : unmap){

      cout<<  i.first  << i.second;

     

 }

'알고리즘' 카테고리의 다른 글

파이썬  (0) 2020.09.24
SQL 기초  (0) 2020.09.09
소수를 구하는 방법  (0) 2020.08.21
BFS  (0) 2020.05.21
cin과 cout 으로 인한 시간초과 잡는 2가지팁  (0) 2020.04.23