C++ 将值插入具有对的映射-错误:在‘;之前应为主表达式’;代币

C++ 将值插入具有对的映射-错误:在‘;之前应为主表达式’;代币,c++,dictionary,c++98,C++,Dictionary,C++98,我对maps(以及一般的c编程)有点陌生,我正在尝试向map中插入一些值,该map将字符串作为键,将成对的作为对应的值 当我尝试编译代码时,会出现以下错误: error: expected primary-expression before ‘,’ token values.insert(make_pair(string, pair<double,double>("test", 0.123456,0.98765 ) ) );

我对maps(以及一般的c编程)有点陌生,我正在尝试向map中插入一些值,该map将
字符串
作为键,将成对的
作为对应的值

当我尝试编译代码时,会出现以下错误:

error: expected primary-expression before ‘,’ token
  values.insert(make_pair(string, pair<double,double>("test", 0.123456,0.98765 ) ) );
                                      ^
错误:应在“,”标记之前使用主表达式
插入(组成对(字符串,对(“测试”),0.123456,0.98765));
^
std::映射值;
插入(组成对(字符串,对(“测试”),0.123456,0.98765));
我是否需要使用迭代器类型来执行此操作?否则,我有一种感觉,那就是我是如何构建的:
“test”,0.123456,0.98765

解决方案:

values.insert(make_-pair(“test”),make_-pair(0.12312312312,0.56756756));

这不是C。请更改标记,或使用正确的编译器。首先制作
string-->double
的映射,一旦您了解了如何正确操作,请了解如何单独创建一对,最后了解如何将它们一起使用。您可以很容易地注意到,您使用了(而不是make_-pair
)。此外,您尝试在最里面的括号中传递3个参数,而
make_-pair
pair
构造函数都有2个参数。