2010-11-26 37 views
2

我正在尋找在C++關聯容器,在那裏,而不是要求它的元素是缺省構造,可將拋出其中一個關鍵的要求也不例外發現 - 編輯:在適當的功能,顯然不是所有的都需要默認構造。這基本上是因爲我將標準分配器替換爲一個家庭電話,並告訴主對象有多少內存正在分配,因此需要知道「家」在哪裏。的關聯容器 - 例外而非默認構造在C++

+0

你能包裝在另一種類型的(a)從所述基礎類型構建的值類型,(B)轉換爲下面的類型,(c)中拋出異常在其無參數構造?沒有真正想過。 – 2010-11-26 14:52:46

回答

2

一個的std ::地圖最簡單的答案,沒有使用operator[]。使用insert創建新元素和find找到現有元素。如果不使用operator[]包含的類型並不需要是缺省構造的,你可以決定拋出和異常,如果find沒有找到對象。

1

你正在尋找的boost::unordered_mapat members?這些不在std::tr1::unordered_map,AFAICT。