C ++ unordered_map

それは特別なマップで、キークエリの複雑さはO(1)ですが、キーの複雑さのためのマップは、O(Nを記録)であります

使用した場合、一部のコンパイラは、次のヘッダーファイルを追加します。

#if(== 201103L __cplusplus)
の#include <unordered_map> 
の#include <unordered_set>
 の#else 
の#include <TR1 / unordered_map> 
の#include <TR1 / unordered_set>
 名前空間STD 
{ 
    使用のstd :: TR1 :: unordered_map。
    使用してのstd :: tr1を:: unordered_set。
} 
#endifの

のは、いくつかの機能を見てみましょう:

#include <ビット/ STDC ++。H>
 の#if(__cplusplus == 201103L)
の#include <unordered_map> 
の#include <unordered_set>
 の#else 
の#include <TR1 / unordered_map> 
の#include <TR1 / unordered_set>
 名前空間STD 
{ 
    使用してSTDを:: TR1 :: unordered_map。
    使用してのstd :: tr1を:: unordered_set。
} 
#endifの
使用 名前空間STDを、
const  int型 MAXN = 1E5 + 100 
unordered_map < int型int型 > FA;
INT {main()の
    [FA1 ] = 2 ; 
    FA [ 2 ] = 3 ; 
    FAは、[ 3 ] = 4 ; 
    FAは、[ 4 ] = 0 ;
     // 。COUNTクエリ機能キーは、値0またはリターンを有する1 
    COUT << fa.count(5。 <) <ENDL; // 0 
    (COUT << fa.count 。4)<< ENDL; // 1 
    COUT << fa.count(3。 << ENDL); // 1 
    IF(fa.find(1)== FA。エンド())<< COUT " 不在" <<てendl; // の存在
    、他の COUT <<それをイテレータ。にとって
    
    
    
    (IT)は(fa.beginを=、!= IT fa.end())
    { 
        COUT << IT->まず<< "  " << IT-> SECOND << ENDL;
         ++ ITは; 
     } 
     COUT << ENDL << ENDL;
      //は奇数のキーエレメント除去
     のために(それは= fa.begin();! ITは= fa.end())
    { 
        IF(IT->まず%2 ==を。1)IT fa.erase =(IT); //は、その後、削除し、次を指す
         ++ ITを; 
     } 
     のために(ITは(fa.beginを=);!IT = fa.end();)
    { 
        COUT << IT->まず< < " "<< IT->第<< ENDL。
        ++ それは、
     } 
    戻り 0 
}

 

おすすめ

転載: www.cnblogs.com/caijiaming/p/11482852.html