Hi.

I am using boost multi-index container for storing objects of type class A, in the class key1 & Key 3 are unique and key2 is non-unique. I try to insert objects of type A and it works fine. No issues.

At some point after the insertion, I wish to modify the key2 to 20  in the container. Can I do this with modify? If yes How do I define the iterator (since I need to do a find based on key1 but modify key2 in the container)

Here is the code snippet:

-----------

class A {
    private:
        std::string     key1;
        long         key2;
        long         key3;   

< Other class members >
};

struct DataMap {
    std::string    key1;
    long        key2;   
    long        key3;   
      A        *pObj;
};

typedef multi_index_container<
  DataMap, 
    indexed_by<
        ordered_unique<
            tag <Key1>, BOOST_MULTI_INDEX_MEMBER(DataMap,std::string,Key1)>,
        ordered_non_unique<
                  tag<Key2>,BOOST_MULTI_INDEX_MEMBER(DataMap,long,Key2)>,   
              ordered_unique<
                  tag<Key3>,BOOST_MULTI_INDEX_MEMBER(DataMap,long,Key3)>
    >
> tDMap;


class myclass {

    private:
       
        tDMap Map;

    public:
       
        insert(std::string, long , long, A *);
};


myclass::insert(std::string key1, long key2, long key3, A *pObj) {


}

main() {
std::string key1 = "Test String";

A abc;

abc.key1 = key1;
abc.key2 = 10;   
abc.key3 = 400;

insert(key1, key2, key3, &abc);

}
-------------------

Thanks in advance!
Ramesh