Reorder elements of the vector
BOOL Reorder( const vector<uint> & vnIndices )
Returns TRUE on success or FALSE on error.
EX1
void vectorbase_Reorder_ex1() { // Declare a string vector and fill with some data vector<string> vecStr1 = {"A", "B", "C"}; // Declare vector with indices for reordering vector<uint> vecIndex1 = {0, 2, 1}; // Reorder vecStr1 using vecIndex vecStr1.Reorder(vecIndex1); printf("vecStr1 = "); for (int ii = 0; ii < vecStr1.GetSize(); ii++) printf("%s ",vecStr1[ii]); // Result: // vecStr1 = "A", "C", "B" }
EX2
void vectorbase_Reorder_ex2() { // The following code shows how to sort one vector // based on contents of another vector<string> vecStr2 = {"A", "B", "C"}; vector vecWeight = {0.4, 0.1, 0.2}; // First get an index vector based on sorting vecWeight vector<uint> vecIndex2; vecWeight.Sort(SORT_ASCENDING, TRUE, vecIndex2); // Now reorder vecStr2 using this index vector vecStr2.Reorder(vecIndex2); printf("\nvecStr2 = "); for (int ii = 0; ii < vecStr2.GetSize(); ii++) printf("%s ",vecStr2[ii]); // Result: // vecStr2 = "B", "C", "A" }
EX3
void vectorbase_Reorder_ex3() { vector vTemp = {6,4,3,7,8,0,1,2,5}; vector<uint> vN = {6,4,3,7,8,0,1,2,5}; vector<uint> vnIndex; vN.Sort(SORT_ASCENDING, TRUE, vnIndex); bool bRet = vTemp.Reorder(vnIndex); for (int ii = 0; ii < vTemp.GetSize(); ii++) printf("%g ",vTemp[ii]); //Result: // vTemp ={0,1,2,3,4,5,6,7,8}; }
Reorder the vector according to the specified index vector
origin.h