map<string,object>拿到double
时间: 2023-12-08 12:04:17 浏览: 120
如果你想从一个`std::map<std::string, object>`中获取一个`double`值,你需要先检查该键是否存在,然后使用`std::get<double>`函数来获取该值。下面是一个示例代码:
```c++
#include <map>
#include <string>
#include <iostream>
#include <variant>
int main() {
std::map<std::string, std::variant<int, double, std::string>> myMap{
{"intVal", 42},
{"dblVal", 3.14159},
{"strVal", "Hello world!"}
};
// Get the double value from the map
if (myMap.find("dblVal") != myMap.end()) {
double dblVal = std::get<double>(myMap["dblVal"]);
std::cout << "The value of dblVal is: " << dblVal << std::endl;
}
return 0;
}
```
在上面的代码中,我们首先定义了一个`std::map<std::string, std::variant<int, double, std::string>>`类型的变量`myMap`,它包含三个键值对,每个键对应一个`int`、一个`double`或一个`std::string`类型的值。
然后我们使用`myMap.find("dblVal")`来检查`myMap`中是否存在键`"dblVal"`,如果存在,我们就使用`std::get<double>(myMap["dblVal"])`来获取该键对应的`double`值。注意,我们使用`std::get`函数来从一个`std::variant`类型中获取具体的值,需要指定要获取的值的类型(在这里是`double`)。如果`myMap["dblVal"]`对应的值不是`double`类型,那么`std::get`函数将会抛出一个`std::bad_variant_access`异常。
阅读全文