下面是一些工作代碼:地圖最大效率的插入
std::pair<typename std::map< time_t, T >::iterator, bool> ret;
ret = prt_map->insert (std::pair< time_t, T >(seconds , value));
if (ret.second == false) // exists
{
... update exising value
}
我想將它升級到最大效率的插入代碼,並給小費,以插入需要從--prt_map-開始>結束();是這樣的:
prt_map->insert (--prt_map->end(), std::pair< time_t, T >(seconds , value));
但這插入功能prototupe不BOOL該通知增值與否(檢查現有和更新,如果這樣返回的std ::對...如何解決這個有能力更新現有值
爲了獲得最大的效率,你可能想使用一個哈希表中定義(比如'的std :: unordered_map' )。 – 2012-04-26 21:12:17
@ n-m我不能總是使用新的gcc,因此當我編譯程序時,系統可能不支持unordered_map。 – abrahab 2012-04-26 21:51:03
'boost :: unordered_map'幾乎在任何地方都被支持。 – 2012-04-26 21:54:56