それは特別なマップで、キークエリの複雑さは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 。 }