У меня есть вектор, который содержит буквенно-цифровую строку, и я хочу отсортировать вектор на основе числового значения.сортировка буквенно-цифровой строки с использованием вектора
Например, если мой вектор содержит следующие значения:
NAME0 name20 name15 name3 name10, мой отсортированный вектор должен выглядеть следующим образом:
NAME0 name3 name10 name15 namw20.
Может ли кто-нибудь помочь, как это сделать ..? Вот мой полный код:
#include<vector>
#include<string>
#include <cstdlib>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
vector<string> temp;
temp.push_back("name0");
temp.push_back("name20");
temp.push_back("name15");
temp.push_back("name3");
temp.push_back("name10");
sort(temp.begin(), temp.end());
for (vector<string>::size_type i = 0; i!= temp.size(); i++)
cout << temp[i] << endl;
return 0;
}
Вам нужно разбить строку на токены на основе строк и чисел, а затем выполнить лексикографическое сравнение по одному токену за раз. – shuttle87