Я использовал его несколько раз без проблем, хотя я использовал его с gcc (как на windows, так и на linux), а не на Visual Studio.
Для фактического использования документации here.
Вы можете указать, сколько ковши резервировать с помощью
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::hash_map<std::string, int, hash<std::string>, eqstr> months;
Вы пробовали это? http://code.google.com/p/google-sparsehash/ – strager 2008-12-05 18:33:39