
Hi, I am using multi_index to keep a set of d-dimensional points, where each
point is a vector inside the multi_index container.
e.g (3,5,8,9,5) is a 5-dimensional point (but this can vary and be 3-d, 7-d,
etc..). I need to have the set sorted by each of the dimensions.
I can do it statically if I know in advance how many dimensions I have, but
I don't know how to make dynamic to any number of dimensions.
I currently have:
template<int N>
struct nth_coordinate
{
typedef int result_type;
int operator()(const vector<int>& x)const
{
return x[N];
}
};
typedef multi_index_container<
vector<int>,
indexed_by<
sequenced<>,
ordered_non_unique
multi_index_Points;
is it possible do it without explicitly saying how many indices do I need? Also, I am trying to create a function which receives as a parameter the dimension I want to work with, but it seems that I need to explicitly say the number of the index in nth_index (it obviously needs a constant). For example: int median (int d){ ... typedef multi_index_Points::nth_index< d >::type multi_index_Points_it; ===> I would like to pass "d" as a parameter ... } is there any workaround for this issues? would you mind pointing me in the right direction with an example of how to do it with thelibrary? thanks in advance... Adan