我想对线性方程进行排序,
输入将是: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;
}
答案 0 :(得分:1)
我首先要按照这个一般顺序创建一个term
类:
class term {
char variable;
int factor;
public:
bool operator<(term const &other) const {
return variable < other.variable);
}
};
然后,您将等式分成若干个术语,对术语进行排序,然后按排序顺序将术语写回(当然,由+
/ -
分隔)