2011-03-31 17 views
1

我想在地圖中存儲對不同對象的引用,但我不知道如何定義地圖。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"]; 

任何建議如何解決此問題?

+0

[http://www.boost.org/doc/libs/1_46_0/doc/html/any.html](boost::any)? – Damon 2011-03-31 14:54:36

回答

1

STL映射(與所有STL容器一樣)只存儲屬於單個類型的值。因此,您可以使用指向基類或聯合的指針作爲值類型。 Boost提供與Variant現代歧視聯盟。