2012-11-21 110 views
1

在開源項目(無增強)中搜索時,我發現了一個類STL容器,其中實現了一個雙向映射。標準C++庫中有multimapC++ STL-like Bidirectional Multimap

  • 但我想知道,是否有任何努力以實現「STL樣 雙向Multimap之」?
  • 或者,我們如何結合現有的容器,使數據結構爲 ?

注:一個簡單的解決方案在雙向方式使用兩個multimap秒。但它表現不佳。因爲,對於每個insert/remove/find操作,我們應該執行它們兩次。另外它分配更多的內存。

注二:boost.bimap是HostileFork和KerrekSB一個很好的建議,如果有沒有辦法,我會使用它。但在此之前,我需要找到一個非增強和小型的類庫。

+0

'boost :: bimap'是僅包含頭文件的模板代碼,在大小方面,您僅支付使用費用。正如HostileFork指出的那樣,它也非常接近標準庫方法論。我懷疑你會找到一個更小尺寸的類庫..... – mark

+0

非推動,因爲?如果我創建了一個能滿足所有boost的複製粘貼項目?如果只是複製粘貼定義你的類的頭文件呢? – Yakk

+0

問題是我有一些限制,我更喜歡添加滿足我的問題的庫。正如你所知,boost有很多其他的功能,我真的不需要它們。 – deepmax

回答

4

Boost.bimap可讓您自定義兩個值的集合類型;兩者都可以是非唯一的。