我需要創建一個地圖,可以包含作爲其值的任何基礎數據類型如雙,浮點,字符串,字符等...從一個服務器組件的請求存儲的值。地圖,可以採取任何基本類型內
我想使用的地圖,比如這個:std::map<std::string, void*>
,但我不知道這是一個非常好的解決方案。
我想知道是否有人可以建議更好的解決方案。重點是值必須在相同的地圖。
請指教?
我需要創建一個地圖,可以包含作爲其值的任何基礎數據類型如雙,浮點,字符串,字符等...從一個服務器組件的請求存儲的值。地圖,可以採取任何基本類型內
我想使用的地圖,比如這個:std::map<std::string, void*>
,但我不知道這是一個非常好的解決方案。
我想知道是否有人可以建議更好的解決方案。重點是值必須在相同的地圖。
請指教?
You could use boost::any
作爲能夠保持「任何」類型的值。
(It is better to use boost::variant
如果僅存在有限多個「基本數據類型」)
你可以有一個結構或聯合(有一個int字段,浮動字段等)爲地圖的值類型。這將更清晰和更易於維護。
嘗試對地圖的成員boost::any
或boost::variant
。
這聽起來像你基本上需要相同的服務,通過Qt的QVariant
類型提供。我不建議在這個類中引入Qt,但是你可能想看看API,看看你是否想創建類似的東西。
可能的值是否受限制?或者它可以*絕對是任何*類型的?這個是來做什麼的?如果我們更瞭解您想要實現的目標,那麼可能會有更好的解決方案。 – jalf 2010-10-27 20:28:09