我需要以键值格式存储字符串。所以我使用如下图。map <string,string>如何在此映射中插入数据?
#include<map>
using namespace std;
int main()
{
map<string, string> m;
string s1 = "1";
string v1 = "A";
m.insert(pair<string, string>(s1, v1)); //Error
}
我得到下面的错误在插线
错误C2784:“布尔的std ::操作<(常量的std :: _树< _Traits> &,常量的std :: _树< _Traits> & )”:不能推导出模板参数的 '常量的std :: _树< _Traits> &' 从 '常量的std :: string'
我也尝试了make_pair函数,但是也报告了同样的错误。
m.insert(make_pair(s1, v1));
请让我知道什么是错的,以及上述问题的解决方案是什么。 解决上述问题后,我可以使用如下基于关键字来检索值
m.find(s1);
这使得代码编译。但是我想知道为什么当我说string s1 =“1”时它没有给出错误;只有在调用插入时才会出错。 – bjskishore123 2010-09-14 13:00:45
@ bjskishore123:也许你有另一个名字是'string'的类,它会与'std :: string'发生碰撞? – ereOn 2010-09-14 13:11:47
@ereOn - 或者这可能不是唯一的编译器错误 – 2010-09-14 13:22:08