2011-12-03 71 views
1

有可能包裹boost::multi_indexfind()erase()方法獲得similiar std::mapfind()erase()的方法呢?的boost :: multi_index和std ::地圖查找()和刪除()

[從註釋:]我有這樣的方法:

typename container1::const_iterator find(const K& key) const 
{ 
    //typedef typename nth_index<container1,0>::type it; c.get<1>().find(key); 
    return (???); 
} 

我應該寫在我的return語句?

+0

請發表您想要做什麼的示例(僞代碼是確定的);我無法從你的口頭描述中瞭解你的問題。 –

+0

@kerrekSB:我有這種方法: 'typename container1 :: const_iterator find(const K&key)const { // typedef typename nth_index :: type it; c.get <1>().find(key); return(???); }' 我應該在退貨聲明中寫什麼? – Superman

回答

1

如果我理解你的問題,你想返回一個索引0的迭代器,而查找是用索引1完成的,對嗎?使用iterator projection

template<typename Container, typename Key> 
typename Container::const_iterator find(const Container& c, const Key& key) 
{ 
    return c.project<0>(c.get<1>().find(key)); 
}