Je stocker un tas des éléments suivantsGet index numérique de multi-index Boost iterator
struct Article {
std::string title;
unsigned db_id; // id field in MediaWiki database dump
};
dans un récipient de Boost.MultiIndex, défini comme
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;
Maintenant, j'ai deux itérateurs, un de index<by_title>
et un de index<by_id>
. Quel est le moyen le plus simple de les transformer en index dans la partie accès aléatoire du conteneur, sans ajouter un membre de données à struct Article
?
donc 'iterator_to (* il)' devrait me donner un iterator accès aléatoire? Et comment puis-je convertir cela en un index numérique, parce que c'est ce dont j'ai vraiment besoin (indexer dans une matrice)? –
@larsman - à en juger par les règles internes du code random_indexed, l'exigence est que les itérateurs sur un tel index soient différentiables, c'est-à-dire. 'iter - index.begin()' devrait fonctionner. Voir éditer. –