Boost logo

Boost Users :

Subject: [Boost-users] Accessing an element of multi_index_container using iterator_to
From: Andrew Kokkalis (andrewkokkalis_at_[hidden])
Date: 2010-02-22 09:51:27


First of all, i'm a programmer with no much experience using Boost
Libraries.
I'm using Boost for academic purposes and here's my problem.

I simply want to access an element of a multi_index_container, by using the
iterator_to iterator.

the container has entries that are <word(string), word_id(int),
tf_idf(float)>
and is indexed by unique order for the first two values :word and word_id.

*Declaration of my container is below:*

*struct counterpart {
    string word;
    int id;
    float tf_idf;

    counterpart(string word_, int id_) {
        word = word_;
        id = id_;
        tf_idf = 0.0;
    }
};

struct word_name{}; //or word char
struct word_id{};
struct word_tf_idf{};

typedef multi_index_container<
    counterpart,
    indexed_by<
        ordered_unique<
            tag<word_name>, BOOST_MULTI_INDEX_MEMBER(counterpart, string,
word)>,
        ordered_unique<
            tag<word_id>, BOOST_MULTI_INDEX_MEMBER(counterpart, int, id)>,
        ordered_non_unique<
            tag<word_tf_idf>, BOOST_MULTI_INDEX_MEMBER(counterpart, float,
tf_idf)> >
> word_index;*

word_index word_set;
int word_count_id = 1;

>From main, I insert some "entries" like below.
*This a test main*
*int main(void){

    //insert to word_set
    pair<word_index::iterator, bool> word_pair;
    if((word_pair = word_set.insert(counterpart("apple",
word_count_id))).second) //word does not exist
        word_count_id++;
}*

I want to access the entry inserted, as i could do with a map. ex
map["apple"]
The reason i do this, is because i want to get the value of a unique
word_id, by accessing the name of the word
and a unique word name by accessing a word_id.
This of course is not possible, so i have to use iterator_to.
But i cannot think how to do this.

Should i prepeare a pair as donne when inserting?
Also how a value or an entire entry is returned? In which form?

Thank you all and I hope you can help me!

Andrew Kokkalis
undergraduate student of
Informatics and Telecomunications University of Athens, Greece



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net