std::map<std::string, double,double> map; std::tuple<std::string, double,double> p = std::make_tuple(“1”,2,3);map.insert(p);有问题吗
时间: 2024-01-20 08:02:53 浏览: 163
C++ 中 std::tuple 与 std::pair 的全面解析与应用实践
有问题,`std::map`的键值对是由一个键和一个值组成的,而`std::map<std::string, double,double>`中的模板参数只有两个,分别是键的类型`std::string`和值的类型`double`,不能再添加第三个参数。因此,你可以将模板参数修改为`std::map<std::tuple<std::string, double, double>, double>`,其中键是一个包含两个`double`类型和一个`std::string`类型的`std::tuple`,值是一个`double`类型的数据。修改后的代码如下所示:
```
std::map<std::tuple<std::string, double, double>, double> map;
std::tuple<std::string, double, double> p = std::make_tuple("1", 2.0, 3.0);
map.insert(std::make_pair(p, 4.0));
```
这样就可以将键为`("1", 2.0, 3.0)`,值为`4.0`的键值对插入到`map`中了。
阅读全文