我看到有人建议使用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