首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用Qmap的键访问Qmap中的值

利用Qmap的键访问Qmap中的值
EN

Stack Overflow用户
提问于 2015-06-26 11:03:29
回答 2查看 1K关注 0票数 0

我有一个QMap,我将它定义为QMap<QString,ModelVariables>ModelMap,其中ModelVariables是一个参数为valuerefvalueID的结构。我想访问结构中定义的参数值。我编写了以下代码,但它显示了一个错误。

代码语言:javascript
复制
float hxt_val_ft04 = ModelMap.value("HXT_V_FT04");

错误:“.”之前的预期主表达式代币。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-26 11:06:31

如果有一个键匹配的MVariables["HXT_V_FT04"]ModelVariables将返回一个"HXT_V_FT04"对象。否则,它将默认构造该对象并返回它。所以你可以用

代码语言:javascript
复制
MVariables["HXT_V_FT04"].value
票数 0
EN

Stack Overflow用户

发布于 2015-06-26 11:15:31

假定"HXT_V_FT04“是您的键,则该值将是ModelVariables结构。您可以使用方括号(如果不存在的话)创建值,也可以使用.at()访问该结构。例如

代码语言:javascript
复制
if(ModelMap.contains("HXT_V_FT04"))
{
  ModelVariables mystruct = ModelMap.at("HXT_V_FT04");
  float hxt_val_ft04 = mystruct.value;
}

这和

代码语言:javascript
复制
if(ModelMap.contains("HXT_V_FT04"))
  float hxt_val_ft04 =ModelMap.at("HXT_V_FT04").value;

另一种选择是:

代码语言:javascript
复制
// create mystruct if it doesn't exist
ModelVariables mystruct = ModelMap.at["HXT_V_FT04"];
float hxt_val_ft04 = mystruct.value;

编辑:根据您提供的类型名称等,我认为您需要如下所示:

代码语言:javascript
复制
// declare the map
Map<QString,ModelVariables> ModelMap;
ModelVariables MVar;

QString key = "HXT_V_FT04";
// assign to Mvar.value
MVar.value = 10.0;

// insert into the map
ModelMap.insert(key, MVar);

// do something

// read back the value in MVar
float val = ModelMap.at(key).value;
//or 
float val = ModelMap[key].value;
//or
float val = ModelMap["HXT_V_FT04"].value;
// or 
ModelVariables mystruct = ModelMap["HXT_V_FT04"];
float val = mystruct.value;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31071551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档