我已经多次使用它而没有问题,尽管我将它用于 gcc(在 Windows 和 linux 上)而不是 Visual Studio。
对于实际使用,文档在这里。
您可以指定使用多少个桶来保留
void resize(size_type n)
关于标识符 T的问题,我假设您忘记用实际类型替换名为 T 的模板参数。如果您无法弄清楚,也许可以粘贴您如何使用 hash_map 的代码片段。
文档中的示例:
#include <hash_map>
#include <iostream>
struct eqstr
{
bool operator()(const char* s1, const char* s2) const
{
return strcmp(s1, s2) == 0;
}
};
int main()
{
std::hash_map<const char*, int, hash<const char*>, eqstr> months;
months["january"] = 31;
months["february"] = 28;
months["march"] = 31;
months["april"] = 30;
months["may"] = 31;
months["june"] = 30;
months["july"] = 31;
months["august"] = 31;
months["september"] = 30;
months["october"] = 31;
months["november"] = 30;
months["december"] = 31;
std::cout << "september -> " << months["september"] << endl;
std::cout << "april -> " << months["april"] << endl;
std::cout << "june -> " << months["june"] << endl;
std::cout << "november -> " << months["november"] << endl;
}
当然,如果您愿意,可以使用 std::string 代替 char*:
std::hash_map<std::string, int, hash<std::string>, eqstr> months;