如何在C ++中创建哈希表?

时间:2010-12-01 22:37:24

标签: c++ boost stl map hashtable

我在VS 2008 C ++中创建一个简单的哈希表。

#include <map>
std::map <string, char> grade_list;
grade_list["John"] = 'B';

我收到错误: 错误C2057:预期的常量表达式

这是什么意思? boost库有更好的东西吗?

谢谢!

3 个答案:

答案 0 :(得分:10)

首先,std::map是树形图,而不是散列图。

您收到错误的原因是您没有#include <string>也没有限定对string的引用,因此编译器不知道string是一个类。

答案 1 :(得分:6)

#include <map>
#include <iostream>
#include <string>

int main() {
    std::map<std::string, char> grade_list;
    grade_list["John"] = 'B';
    std::cout << grade_list["John"] << std::endl;
    return 0;
}

这适用于g ++。 您应该在地图声明中指定std :: before字符串,就像我在代码中所做的那样。

答案 2 :(得分:1)

代码在main函数之前。