Array *Array::SortArrayElementsByKey() { Array *newARRAY = new(AllocArray(PIF))Array(PIF); #ifdef STDMAP_KEYS if (Keys) { KeyMap::iterator end = Keys->end(); AnsiString key; ARRAY_COUNT_TYPE i = 0; for (KeyMap::iterator iter = Keys->begin(); iter != end; ++iter) { newARRAY->Add(Get(iter->second)); key = (char *)iter->first; newARRAY->AddKey(&key, i++); } } #else CleanIndex(true); for (ARRAY_COUNT_TYPE i = 0; i < KeysCount; i++) { AnsiString key = Keys [i].KEY; newARRAY->Add(Get(Keys [i].index)); newARRAY->AddKey(&key, i); } #endif return newARRAY; }