Код | #include <vector> #include <algorithm> //... bool m_comp(const AnsiString &f, const AnsiString &l) { int _f, _l;
try { _f = f.ToInt(); } catch(...) { return false; }
try { _l = l.ToInt(); } catch(...) { return true; }
if(_l > _f) return true;
return false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { unsigned short i; std::vector<AnsiString> v; for(i=0; i<ListBox1->Count; i++) v.push_back(ListBox1->Items->Strings[i]);
std::vector<AnsiString>::iterator b = v.begin(), e = v.end();
std::sort(b, e, m_comp);
ListBox1->Clear(); for(i=0; i<v.size(); i++) ListBox1->Items->Add(v[i]); v.clear(); }
|
Сортирует по возрастанию целые числа. Если вдруг в список попали строки (мало ли), они окажутся в самом конце отсортированного списка в не отсортированном виде. |