主にハッシュマップ。側挿入エッジの外観があり、効率を改善し、スペースの複雑さを軽減します。
前にマップを使用し、より効率的に、そこにHashMapことが判明し。
名前空間に注意してください。
名前空間の使用__gnu_cxxを。
問題は、現在、C ++標準テンプレートライブラリに含まれていないhash_mapが、問題は時にクロスプラットフォームの使用を発生することがあります
しかし、STLのほぼすべてのバージョンは、対応する実装を提供します。
ヘッダファイル<hash_map>
また、地図データが挿入されているいくつかの方法があります。私はmake_pair使用しました
一般的
- マップ< int型、文字列> mapStudent。
- mapStudent.insert(対< 整数、文字列>(1、 "student_one"));
- マップ< int型、文字列> mapStudent。
- mapStudent.insert(マップ< int型、文字列> :: VALUE_TYPE(1、 "student_one"));
- マップ< int型、文字列> mapStudent。
- mapStudent.insert(make_pair (1、 "student_one"));
- mapStudent.insert(make_pair (2、 "student_two"));
書式#include <hash_map> 書式#include <ベクトル> 使用して名前空間の__gnu_cxxを。クラス解決{ パブリック: ベクトル < INT > twoSum(ベクトル< INT >&NUMS、int型のターゲット){ / * ベクトル<整数> B。 以下のために(INT i = 0; i)は(nums.sizeを<; iは++) mmap.insert(make_pair(NUMS [I]を、私は))。 以下のために(INT i = 0; i)は(nums.sizeを<; iは++) { IF((mmap.count(ターゲットNUMS [I]))&&(MMAP [ターゲットNUMS [I] = 1)!) { b.push_back(MMAP [ターゲットNUMS [I])。 b.push_back(I); ブレーク; } * / ベクター < INT > B。 hash_map < int型、int型 > のmmap。 以下のために(int型 i = 0 ; i)は(nums.sizeを<; iは++ ) { mmap.insert(make_pair(NUMS [i]は、I))。 もし((mmap.count(ターゲットNUMS [I]))&& =(MMAP [i]はターゲットNUMS]!I)) { b.push_back(MMAP [ターゲット - NUMS [I])。 b.push_back(I); 破ります; } } リターンB; }。 }。