我存儲了一堆以下獲取與Boost多指標的迭代器
struct Article {
std::string title;
unsigned db_id; // id field in MediaWiki database dump
};
在Boost.MultiIndex的容器,定義爲
typedef boost::multi_index_container<
Article,
indexed_by<
random_access<>,
hashed_unique<tag<by_db_id>,
member<Article, unsigned, &Article::db_id> >,
hashed_unique<tag<by_title>,
member<Article, std::string, &Article::title> >
>
> ArticleSet;
現在我有兩個數字索引迭代器,一個來自index<by_title>
,另一個來自index<by_id>
。將這些索引轉換爲容器的隨機訪問部分的最簡單方法是什麼,而不向struct Article
添加數據成員?
所以'iterator_to(* it)'應該給我一個隨機訪問迭代器?我該如何將它轉換爲數字索引,因爲這就是我真正需要的(將索引到矩陣中)? – 2010-11-18 18:06:55
@larsman - 根據random_indexed代碼的內部判斷,要求是這樣的索引上的迭代器是可區分的,即。 'iter - index.begin()'應該工作。請參閱編輯。 – 2010-11-18 18:11:37