問題是:我想使用unordered_map存儲鍵和值,其中鍵可以是A類或B類,具體取決於用戶選項。這兩個類A和B繼承來自同一類P.unordered_map和虛擬模板
class A: public P {...}
class B: public P {...}
我想與抽象P艙定義地圖和以後,根據運行時間選項,其中A或B,爲分配有一個地圖關鍵:
unordered_map< P, CValue, P::hash, P::equal_to> * pmap = new unordered_map< A, CValue, A::hash, A::equal_to>;
,但我會得到錯誤:
cannot convert ... in initialization
我如何聲明這樣一個 「虛擬」 的地圖?
所以我們map_unordered,unordered_map和unsorted_map - 它要價太高了,你得到一個簡單的名字吧? – 2011-06-07 10:35:40
你能舉一個例子說明如何使用它?另外,您是否需要具有異構密鑰的地圖,還是您需要一組具有同類密鑰的地圖? – 2011-06-07 13:29:31
在代碼的開始部分,我選擇使用哪種類型的鍵:A或B,它將在程序後面的所有時間使用。但是我不能「靜態」定義地圖模板,因爲關鍵類型取決於用戶的選項。在這種特殊情況下,我將用它來統計一些網絡統計信息,並且我想通過AS號碼的前綴_或_來聚合它們。 – 2011-06-07 15:51:05