Re: [Boost-users] Multi-index container (Modifying non-unique key in the container)

(Excuse the slow pace of this thread, I've been on vacation with little access to the Internet). ________________________________ De: boost-users-bounces@lists.boost.org [boost-users-bounces@lists.boost.org] En nombre de Ramesh [rramesh1@gmail.com] Enviado el: jueves, 21 de agosto de 2008 0:17 Para: boost-users@lists.boost.org Asunto: Re: [Boost-users] Multi-index container (Modifying non-unique key in the container) On Wed, Aug 20, 2008 at 8:02 AM, JOAQUIN M. LOPEZ MUÑOZ <joaquin@tid.es<mailto:joaquin@tid.es>> wrote: Yes, but DataMap seems to *replicate* the keys that are already present in A. Cannot you just have the following? typedef multi_index_container< A*, indexed_by< ordered_unique< tag <Key1>, BOOST_MULTI_INDEX_MEMBER(A,std::string,Key1)>, ordered_non_unique< tag<Key2>,BOOST_MULTI_INDEX_MEMBER(A,long,Key2)>, ordered_unique< tag<Key3>,BOOST_MULTI_INDEX_MEMBER(A,long,Key3)> >
tDMap;
[...]
If I would remove the keys the map would just hold pointers and I wouldnt be able to do lookups based on the keys (to retrieve pointers to objects based on keys) if I wouldnt pair the pointers with they keys in the Map - thats why I have the keys in the map, please correct me if am wrong. You can use the members of the pointed to objects of type A as keys of your container. This is discussed in detail at:
http://www.boost.org/libs/multi_index/doc/reference/key_extraction.html#chai... In particular, I think that the tDMap definition I gave above should work directly. Please report back if this is not the case. Joaquín M López Muñoz Telefónica, Investigación y Desarrollo

On Sun, Aug 24, 2008 at 2:55 PM, JOAQUIN M. LOPEZ MUÑOZ <joaquin@tid.es>wrote:
(Excuse the slow pace of this thread, I've been on vacation with little access to the Internet).
------------------------------ *De:* boost-users-bounces@lists.boost.org [ boost-users-bounces@lists.boost.org] En nombre de Ramesh [ rramesh1@gmail.com] *Enviado el:* jueves, 21 de agosto de 2008 0:17 *Para:* boost-users@lists.boost.org *Asunto:* Re: [Boost-users] Multi-index container (Modifying non-unique key in the container)
On Wed, Aug 20, 2008 at 8:02 AM, JOAQUIN M. LOPEZ MUÑOZ <joaquin@tid.es>wrote:
Yes, but DataMap seems to *replicate* the keys that are already present in A. Cannot you just have the following?
typedef multi_index_container< A*, indexed_by< ordered_unique< tag <Key1>, BOOST_MULTI_INDEX_MEMBER(A,std::string,Key1)>, ordered_non_unique< tag<Key2>,BOOST_MULTI_INDEX_MEMBER(A,long,Key2)>, ordered_unique< tag<Key3>,BOOST_MULTI_INDEX_MEMBER(A,long,Key3)> >
tDMap;
[...]
If I would remove the keys the map would just hold pointers and I
wouldnt be able to
do lookups based on the keys (to retrieve pointers to objects based on keys) if I wouldnt pair the pointers with they keys in the Map - thats why I have the keys in the map, please correct me if am wrong. You can use the members of the pointed to objects of type A as keys of your container. This is discussed in detail at:
http://www.boost.org/libs/multi_index/doc/reference/key_extraction.html#chai...
In particular, I think that the tDMap definition I gave above should work directly. Please report back if this is not the case.
Joaquín M López Muñoz Telefónica, Investigación y Desarrollo
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
My turn to ask you for excuse :) Didnt get a chance to come back to you real quick on this. I dug up the thread archive on multi-index, after seeing your note , found holle.cpp, found it very comprehensive. It does explain pretty much all of multi-index capabilities. Thanks a bunch correcting the data structure. I dont think I need to keep the keys inside the map. Regards Ramesh
participants (2)
-
JOAQUIN M. LOPEZ MUÑOZ
-
Ramesh