2014-07-12 28 views
0

是否有一個容器可以在Qt中存儲不同類型的容器(是的,我真的需要使用不同類型的類型)?我必須創建一個新班級來做到這一點?如果是這樣,你能給我一個創建它的提示嗎?在Qt中動態輸入容器

+0

這將是QVariant。 – user2672165

+0

我可以將QVariant設置爲QMap嗎? – user3713179

+0

是的,您可以存儲'QMap '甚至用戶定義的類型,請參閱http://stackoverflow.com/questions/3193275/how-to-verify-qvariant-of-type-qvariantusertype-is-expected-請輸入 – user2672165

回答

1
  1. 大多數容器中的Qt是template based,那麼你可以將它們用於不同的靜態類型。

  2. 另一種選擇是使用使用QVariant,例如:QVector<QVariant> vec;

  3. 更動態的解決方案是使用polymorphism,你可以存儲指向基類的指針等。


PS:作爲一般規則,你應該避免這種模式。從有效的C++,斯科特邁爾斯:

任何時候,你發現自己寫形式的代碼「如果對象是類型T1的 ,然後做一些事情,但如果它的類型T2的,然後做 別的東西,「拍你自己。

+0

我想知道多態性如何在我的情況下有所幫助 – user3713179