|
Boost Users : |
From: Joaquin M Lopez Munoz (joaquin_at_[hidden])
Date: 2006-07-04 18:01:35
Hello Adán,
Adán Cosgaya <acosgaya <at> gmail.com> writes:
>
> hi,i am new using the multiindex library, and I need to do the
> following.I have a set of d-dimensional points (e.g (3,5,8,9,5)
> is a 5-dimensional point), and I need to sort the points on
> each of the coordinates.
> I want to store the points in a vector,
Do you mean that the points *are* vectors or that, moreover,
they are stored in a vector (thus, a vector of vectors)?
If the latter, why do you want to have them in a vector?
Does not having them stored in the multi_index_container
suffice? In the following I assume that the points are
stored only in a multi_index_container whose first index is
of type sequenced (std::list-like), which gives you the
free-positioning interface you seem to need. If this is not
what you're after please tell me so.
> and use multiindex
> to have all the points (vectors in this case) sorted in each of
> the coordinates
[...]
> would you mind pointing me in the right direction with an
> example of how to do it with multiindex library? thanks
You only need to define an appropriate key extractor
for the N-th element of a vector:
template<int N>
struct nth_coordinate
{
typedef int result_type;
int operator()(const std::vector<int>& x)const
{
return x[N]; // or .at(N) for greater safety
}
};
so that the multi_index_container definition becomes:
typedef multi_index_container<
std::vector<int>,
indexed_by<
sequenced<>,
ordered_non_unique<nth_coordinate<0> >,
ordered_non_unique<nth_coordinate<1> >,
ordered_non_unique<nth_coordinate<2> >,
ordered_non_unique<nth_coordinate<3> >,
ordered_non_unique<nth_coordinate<4> >
>
> multi_index_t;
Does this help? If for some reason the sequenced index
at position #0 does not suffice, in Boost 1.34 there
will be random access indices which are more similar
to a vector, see http://tinyurl.com/psr6o .
Good luck with your project,
JoaquÃn M López Muñoz
Telefónica, Investigación y Desarrollo
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