stl具有不同值类型的地图?

时间:2011-03-31 14:47:40

标签: templates dictionary stl

我想将引用存储到地图中的不同对象,但我不知道如何定义地图。

e.g:

map<string, & ObjectReferenceOfAnyKind> myList;

myList[ "keyA",  stringA );
myList[ "keyBlist",  vector );
myList[ "file",   fileObject );

string &value = (string&) myList["keyA"]; 
CFile &fobj = (CFile&) myList["file"];

有任何建议如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

STL映射(与所有STL容器一样)仅存储属于单个类型的值。因此,您可以使用指向基类或联合的指针作为值类型。 Boost提供了与Variant的现代辨别联盟。