ハッシュテーブル/順序付けされていないマップを完全に理解しているかどうかはわかりません。次の手順を実行すると、コードがコンパイルされて正しく機能します。
#include <tr1/unordered_map>
int main() {
tr1::unordered_map<string, int> base;
string string1;
int integer1;
base["A"] = 0;
string1 = "A";
integer1 = base[string1];
cout << integer1 << endl;
return 0;
}
しかし、これはコンパイルされません:
#include <tr1/unordered_map>
int main() {
tr1::unordered_map<int, char> base;
char char1;
int integer1;
base[1] = 'A';
integer1 = 1;
char1 = base[integer1];
cout << char1 << endl;
return 0;
}
これにより、次のエラーが発生します。
エラー:への呼び出しに一致しません
'(std::tr1::unordered_map<int, char, std::tr1::hash<int>, s std::equal_to<int>, std::allocator<std::pair<const int, char> >, false>) (int*)'
誰かが私にこの問題を説明できますか?unordered_mapがどのように機能するか理解していないと思います。Appleでgcc4.2.1を使用してコンパイルしています。