nested containers with boost?
Hi,
I would like an arbitrarily nested data structure, e.g. similar to
std::vector< std::list<int> >, giving access to the elements of any of
its subcontainers, but, at the same time, being a model of Container -
in particular, having an iterator over all the elements in the last
nesting level (int's in the previous example). Space/time efficiency is
very important in my application.
My solution would be to build a container adaptor similar to
// vector of lists of ... of int
typedef my_nested_container
On 4/4/07, nicola
Hi, I would like an arbitrarily nested data structure, e.g. similar to std::vector< std::list<int> >, giving access to the elements of any of its subcontainers, but, at the same time, being a model of Container - in particular, having an iterator over all the elements in the last nesting level (int's in the previous example). Space/time efficiency is very important in my application.
Nicola
Depending on why you need to have nested containers in the first place, you might want to look at Boost MultiIndex. It might be able to replace your nested containers completely. Otherwise, I'd look at making custom iterators for visitation, but I'm not sure things like insert() will make sense in all situations. Tony
In article
<97ffb310704041346h4bb0ec9cq6c1edc7b943e64dc@mail.gmail.com>,
"Gottlob Frege"
On 4/4/07, nicola
wrote: Hi, I would like an arbitrarily nested data structure, e.g. similar to std::vector< std::list<int> >, giving access to the elements of any of its subcontainers, but, at the same time, being a model of Container - in particular, having an iterator over all the elements in the last nesting level (int's in the previous example). Space/time efficiency is very important in my application.
Nicola
Depending on why you need to have nested containers in the first place, you might want to look at Boost MultiIndex. It might be able to replace your nested containers completely.
Thanks, I will take a deeper look at MultiIndex. My goal is to manage a partition of a collection of elements. The requirements are fast insertion/deletion into each class of the partition and fast iteration over both the elements of a single class and over all the elements of the collection (that must be amenable to be treated as a Container). Besides, in some cases, it may be convenient to maintain the elements within a class (not the whole collection) sorted by some key. Nicola
participants (2)
-
Gottlob Frege
-
nicola