C++ 如何在c++;
我有一张带有一些值的地图。然后我有一个函数返回一些字符串,这个字符串将是map中键的一个成员。我需要根据键检索值并将其传递给另一个函数,该函数将其作为参数C++ 如何在c++;,c++,maps,C++,Maps,我有一张带有一些值的地图。然后我有一个函数返回一些字符串,这个字符串将是map中键的一个成员。我需要根据键检索值并将其传递给另一个函数,该函数将其作为参数 map<string,int> SymbolTable; SymbolTable["R0"]=0; SymbolTable["R1"]=1; SymbolTable["R2"]=2; SymbolTable["R3"]=3; string value=getValue(); //this one will return some
map<string,int> SymbolTable;
SymbolTable["R0"]=0;
SymbolTable["R1"]=1;
SymbolTable["R2"]=2;
SymbolTable["R3"]=3;
string value=getValue(); //this one will return something from R0 to R3
nextFunction(SymbolTable[value]); // this part is wrong
map符号化;
可符号化[“R0”]=0;
SymbolTable[“R1”]=1;
SymbolTable[“R2”]=2;
可符号化[“R3”]=3;
字符串值=getValue()//这个将从R0返回一些东西到R3
下一个函数(SymbolTable[值];//这部分是错误的
如果我给出value==“R0”或某个静态值,那么这是按预期工作的。但每当我传递这个动态值时,它总是返回0,所以我的nextFunction将0作为参数。
我试图从getValue()输出返回值,以检查它返回的内容,结果是正确的。我尝试过许多类似的方法,但都给了我同样的问题。有人能告诉我我做错了什么吗?蒂伊 如果我给value==“R0”或某个静态值,这就是 预期。但每当我传递这个动态值时,它总是返回0 它只是意味着您获得的“动态值”在地图中不作为键存在如果关联的键不存在,则插入默认构造值 要检查地图中是否存在
值
,可以执行以下操作:
string value=getValue();
if(SymbolTable.count(value)){
//key exists....
nextFunction(SymbolTable[value]); // this part should be correct now
}
或者你也可以同样使用可能值得一提的是如何使用
std::map::find()
,来解决这个问题。我试图从getValue()输出返回值,这正是我所期望的@πάνταῥεῖ, 谢谢完成。尽管如此,我对count()。我没有意识到这一点,很抱歉:-)…@EbinPIssac演示了如何使用动态值:。您应该发布完整的实际代码。