2010-08-03 3 views
0

У меня есть std::vector<std::string>, который будет содержать числа и символы (один символ). Я бы хотел, чтобы сначала отсортированные числа, а затем символы ... поэтому у меня есть перемешанный вектор строк в качестве входных данных, и после сортировки я хочу, чтобы это как 1,2,3,5,7,9,10, A, В, С, D. Но я думаю, что сортировка также сравнивает размеры входов, и, следовательно, если у моего вектора есть номера разной длины, я получаю неправильный вывод. Например, делая std::sort (vec.begin(),vec.end()) на 9,4,5,2,10,11,A,D,B,E,C возвращает 10,11,2,4,5,9,A,B,C,D,E.std :: sort on std :: vector <std::string>

Как исправить мою ошибку и что мне не хватает?

Спасибо,
Саян

ответ

1

Написать не-лексикографическом процедура сравнения и передать его вместе с итераторов StD :: сортировки.

+0

Я думаю, что лексикографический вид использует ascii для сравнения, поскольку он по умолчанию. Спасибо, напиши пользовательский, как вы предложили. – Sayan

Смежные вопросы