Как отсортировать строку, содержащую цифры и символы? - PullRequest
0 голосов
/ 13 мая 2018

Я хочу отсортировать линейное уравнение, вход будет: 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 голосов
/ 13 мая 2018

Я бы начал с создания класса term по этому общему порядку:

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

Затем вы разделите свое уравнение на некоторое количество терминов, отсортируете термины и затем напишите терминывернуться в отсортированном порядке (конечно, через + / - в зависимости от ситуации).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...