I have a set of n- dimension point store in `vector< vector<double> >`
ex A[0][1].............[N], and A[0][0] = X, A[0][1] = Y, A[0][2] = Z
and I want to sort the vector of all of the dimension
ex sort X, Y, Z ,.........N in ascending order
ex A[0] = (1,5,3), A[1] = (3,2,1) A[2] = (2,8,4) after sorting
index: 0 1 2
A[0] = (1,5,3), A[1] = (2,8,4) A[2] = (3,2,1)
original index : 0 2 1
I find that `sort(vector.begin(), vector.end())` can sort it but how can I record the original index with a additional vector?
Is there a algorithm or C++ feature can solve it?
Thx in advance.
I have tried to solve it with a class wrapper it but I don't know how to write the compare function.
1 2 3 4 5 6 7 8 9 10
|
class point{
public:
point(int totalLength = 0, int elementLength = 0);
vector<vector<double> > pointSet;//store the n-D points
vector<double> pointIndex;//store the index
};
point::point(int totalLength, int elementLength){
pointSet.resize(totalLength,vector<double>(elementLength, 0));
pointIndex.resize(elementLength);
}
|