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