我需要以鍵值格式存儲字符串。所以我使用如下圖。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