読んで保存しようとしている単語がたくさん含まれているファイルがあります。ソートマップを作成しようとしています。
プログラムの最初に、各エントリの情報を格納するために使用される構造体を宣言しました。
typedef struct dictionary{ std::string word; unsigned char * hash; char *hex; } a_dictionary;
unordered_map<char * , a_dictionary * > Mymap;
これは単語を保存するために実行しているコードですが、何らかの理由でmyMapが正しく記述されていません
if (myfile.is_open())
{
LARGE_INTEGER freq, before, after;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&before);
while ( myfile.good() )
{
getline (myfile,line);
a_dictionary * dic = new dictionary(); // after each line create
dic->word = line;
const char * c= line.c_str();
sha1::calc(c,line.length(), hash);//encrypts the word
dic->hash = hash;
sha1::toHexString(hash,hex_str);//encrypts the word
dic->hex = hex_str;
Mymap.insert(std::make_pair(hex_str, dic));
}
QueryPerformanceCounter(&after);
float fElapsed = static_cast<float>(after.QuadPart - before.QuadPart) / freq.QuadPart;
cout<<"Finished in "<<fElapsed;
コンパイルエラーは発生しません。whileループ内で構造体の変数を出力すると、問題なく出力されます...しかし、unordered_mapがいっぱいになることはありません。