std::sort() について教えて下さい。

std::sort( list.begin(), list.end(), cmpfunc);

みたいにしてソート処理させてみました。
string lhs, rhs とすると、cmp func は、 return (lhs < rhs); のようにしています。
これで数字のソートをさせると
10, 11, 12, 1, 2, 3 が
1, 10, 11, 12 ,2, 3 みたいになっちゃうのですが、1, 2, 3, 10, 11, 12 というように
並べるにはどうするのが良いでしょうか?