|
Boost : |
From: Andy Tompkins (atompkins_at_[hidden])
Date: 2005-12-22 11:01:42
I have written a function object to sort string alpha-numerically. If a
string contains a number, that part is converted to an int and compared
as ints. Thus "2" comes before "10".
For example the list {a1, a10, a11, a2} would be sorted as {a1, a2, a10,
a11}
Example use code:
{
vector<string> my_list;
//populate list
sort(my_list.begin(), my_list.end(), lt_alphanum<char>());
}
The class lt_alphanum splits the strings into sections containing
digits,
and non-digits. It then compares successive sections such that if two
sections both contain digits, they are converted to ints and compared.
Otherwise the sections are compared normally.
I hope I am being clear.
Andy Tompkins
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk