我在VS 2008 C ++中创建一个简单的哈希表。
#include <map>
std::map <string, char> grade_list;
grade_list["John"] = 'B';
我收到错误: 错误C2057:预期的常量表达式
这是什么意思? boost库有更好的东西吗?
谢谢!
答案 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函数之前。