Я использовал его несколько раз без проблем, хотя я использовал его с 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;
person
Community
schedule
04.12.2008