C++ 在C+中使用无序"映射将整数转换为字符+;
我不确定我是否完全理解哈希表/无序映射。当我执行以下操作时,代码编译并正常工作:C++ 在C+中使用无序"映射将整数转换为字符+;,c++,C++,我不确定我是否完全理解哈希表/无序映射。当我执行以下操作时,代码编译并正常工作: #include <tr1/unordered_map> int main() { tr1::unordered_map<string, int> base; string string1; int integer1; base["A"] = 0; string1 = "A"; integer1 = base[string1];
#include <tr1/unordered_map>
int main() {
tr1::unordered_map<string, int> base;
string string1;
int integer1;
base["A"] = 0;
string1 = "A";
integer1 = base[string1];
cout << integer1 << endl;
return 0;
}
#包括
int main(){
tr1::无序的地图库;
弦1;
整数1;
基数[“A”]=0;
string1=“A”;
整数1=基[string1];
CUT下面的编译和工作都很好,Visual C++ 10和MinGW g +4.4.1:< /P>
#include <iostream>
#include <unordered_map>
int main()
{
using std::unordered_map;
using std::cout; using std::endl;
unordered_map<int, char> base;
char char1;
int integer1;
base[1] = 'A';
integer1 = 1;
char1 = base[integer1];
cout << char1 << endl;
return 0;
}
#包括
#包括
int main()
{
使用std::无序_图;
使用std::cout;使用std::endl;
无序的地图库;
char-char1;
整数1;
基[1]=“A”;
整数1=1;
char1=基[integer1];
第二个代码段有几行的修复程序,可以用gcc编译。请看。您使用的是哪种编译器?@dirkgently我使用的是g++4.2.1,也许我应该更新一下?考虑到gcc发布的4.7版本(具有出色的C++11支持),这一版本已经很旧了。这可能是实现中的一个错误。所以,是的,我想你需要升级。另外,如果你在苹果上,这可能比实际的GCC 4.2.1稍晚一点!@dirkgenty我在苹果上。升级到苹果“支持”的版本后有什么问题吗?我不能说,我已经有一段时间没有接触过苹果了。但据我所知,两者都保留(现有的和新的)应该相当容易。
#include <iostream>
#include <unordered_map>
int main()
{
using std::unordered_map;
using std::cout; using std::endl;
unordered_map<int, char> base;
char char1;
int integer1;
base[1] = 'A';
integer1 = 1;
char1 = base[integer1];
cout << char1 << endl;
return 0;
}