Je l'ai utilisé un certain nombre de fois sans problèmes, bien que je l'ai utilisé avec gcc (à la fois sur Windows et Linux) et non sur Visual Studio. Pour une utilisation réelle, la documentation est here.
Vous pouvez spécifier le nombre de seaux à réserver à l'aide
void resize(size_type n)
En ce qui concerne votre problème avec identifiant T, je suppose que vous avez oublié de remplacer un argument de modèle, appelé T, avec un type réel. Si vous ne pouvez pas le comprendre, collez un extrait de code de la manière dont vous utilisez hash_map.
Exemple de la documentation:
#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;
}
Bien sûr, vous pouvez utiliser std :: string au lieu de char * si vous le souhaitez:
std::hash_map<std::string, int, hash<std::string>, eqstr> months;
Avez-vous essayé? http://code.google.com/p/google-sparsehash/ – strager