如何对包含数字和符号的字符串进行排序?

how to sort a string that contains numbers and symbols?

本文关键字:字符串 排序 符号 包含 数字      更新时间:2023-10-16

我想对线性方程进行排序, 输入将是:3y+2x+6z=7所需输出:2x+3y+6z=7我使用了算法库,但输出与输入完全相同。 当然,代码尚未完成,但我需要这个排序功能才能继续,我是初学者,我对排序知之甚少。

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
void fillvector(vector<string>& vect)
{
int n;
cin>>n;
for(unsigned int i=0; i<n; i++){
string input;
cin>>input;
vect.push_back(input);
}
}
void sortvector(vector<string>& vect)
{
for(unsigned int i=0; i<vect.size(); i++){
sort(vect.begin(),vect.end());
cout<<vect[i]<<endl;
}
}
int main()
{
vector<string> eqns;
fillvector(eqns);
sortvector(eqns);
return 0;
}

我首先按照这个一般顺序创建一个term类:

class term {
char variable;
int factor;
public:
bool operator<(term const &other) const { 
return variable < other.variable); 
}     
};

然后,您将方程分成一定数量的项,对项进行排序,然后按排序顺序将项写回去(当然,根据需要用+/-分隔(。