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

时间:2018-05-12 21:13:24

标签: c++ sorting

我想对线性方程进行排序, 输入将是: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;
}

1 个答案:

答案 0 :(得分:1)

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

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

然后,您将等式分成若干个术语,对术语进行排序,然后按排序顺序将术语写回(当然,由+ / -分隔)