我看到有人建議使用boost ::任何有異類地圖。即C++異構地圖陣列
map<string,boost::any>
有沒有人有任何運氣存儲(併成功地使用)存儲在地圖上的數組做這種技術?
我已經能夠做到以下幾點:
boost::array<char,100> myArr;
map<string,boost::any> myMap;
myArr[51] = a;
myMap["imageData"] = myArr;
這樣做的問題是,這似乎是在內存中存儲整個陣列的兩倍。 如果我改變了一下,這樣做:
boost::array<char,100> myArr;
map<string,boost::any> myMap;
myArr[51] = a;
myMap["imageData"] = &myArr;
我不知道如何找回數據出來的圖。我如何創建一個boost::array<char,100>
指針?我可以嗎?是否有其他人能夠做類似的事情或有什麼想法以更優雅的方式做類似的事情?我想在地圖中存儲一個char[100]
,但是我無法在地圖中放置一次(爲了在地圖中使用數據,必須將其轉換爲適當的類型)。一個解決方案,可以讓我得到一個char[someSize]
出地圖將是理想的。
你能解釋一下你的實際目標是什麼? –
@比約恩博動我想創建與運行參數的類。即代替具有一個'INT寬度= 5;'在類定義的,類有一個'映射<串,升壓::任何> classMap'和類的用戶可以做'類映射[「寬度」] = 5 ;'這工作正常,除了我在類映射中存儲char [someSize]值時遇到各種麻煩。例如: '炭myChar [1000];' '類映射[「的imageData」] = myChar;' 存儲炭[1000]在地圖,並使用它是不可能的,因爲你需要轉換數據纔可以使用它。 – imjojo42