2012-01-05 39 views
0

因此,我使用stanford的CS106 C++庫創建了嵌套模板(矢量地圖) - 我相信這是創建用於遵循常規的comp-sci工作方式。無法將值添加到嵌套在地圖內的矢量中

Map<Vector<char> > mv; 

我想不通的語法添加鍵/值對,其中值當然是一個向量入口... 到目前爲止,我已經試過這種變化:

mv.put("key", 'A'); 

錯誤從上面的代碼:從「字符」否可行轉換到「載體」

放()是成員函數,增加了一個密鑰/值對。

關鍵工作正常。問題是將char插入向量中。我沒有任何麻煩給已經創建的鍵添加一個值,它只是創建一個具有我不能做的值的新鍵。

add()是將char添加到向量中的成員函數。

完全不確定語法是怎麼看的,我試過尋找一個沒有運氣的解決方案,而且我的修補工作迄今爲止沒有成果。

感謝您的幫助,非常感謝:)

編輯:對不起,我應該從一開始就包含在此,這裏是庫文件:http://www.stanford.edu/class/cs106b/cs106lib/

+0

地圖需要兩個類型參數。 – dasblinkenlight 2012-01-05 04:46:29

+0

不,它沒有。這個CS106 Map類型總是使用'string'作爲鍵。 – 2012-01-05 04:49:59

+0

對不起,我不關注,兩個類型參數是什麼意思? – Jarrod 2012-01-05 04:50:04

回答

1

你可以做這樣的事情:

Vector<char> v; 
v.add('A'); 
mv.put("key", v); 
+0

嵌套在向量中嵌套的Vector嗎? – Jarrod 2012-01-05 04:57:25

+1

不可以。直到你使用'put()',給定的鍵沒有'Vector'。你必須在那裏放置一個實際的矢量。當你已經知道該鍵存在於Map中時,爲Vector添加一個值,你可以使用'mv.get(「key」).add('B');'。但是,如果您在添加密鑰之前執行此操作,則會引發運行時錯誤。 – 2012-01-05 04:59:37

+0

啊真的!這很有道理:)謝謝歐內斯特!現在工作很完美。這就是爲什麼我愛StackOverflow ... 15分鐘後,我有一個解決方案。大! – Jarrod 2012-01-05 05:01:44