mam przechowującą pęczek następującymZdobądź indeks liczbowy od doładowania multi-index iterator
struct Article {
std::string title;
unsigned db_id; // id field in MediaWiki database dump
};
w pojemniku Boost.MultiIndex, zdefiniowany jako
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;
teraz mam dwa iteratory, jeden z index<by_title>
i jeden z index<by_id>
. Jaki jest najłatwiejszy sposób przekształcenia ich w indeksy w część o swobodnym dostępie do kontenera, bez dodawania elementu danych do struct Article
?
Tak więc 'iterator_to (* it)' powinien dać mi iterator dostępu losowego? I w jaki sposób mogę przekonwertować to na indeks numeryczny, ponieważ tego właśnie potrzebuję (aby zaindeksować w macierz)? –
@larsman - sądząc po wnętrzach kodu random_indexed, warunkiem jest, że iteratory na takim indeksie są różne, tzn. 'iter - index.begin()' powinien działać. Zobacz edycję. –