Я новичок в C ++.Я хочу отсортировать вектор "Konten" типа vector Konto.
Я искал решение и нашел функцию std :: sort.Я перегружен оператор <для класса "Конто".Но когда я пытаюсь отсортировать вектор Konto и скомпилировать мой код, я получаю сообщение об ошибке: </p>
Ошибка C2678 Двоичный оператор "=": не может быть найден оператор, который принимает "постоянную учетную запись"ручной операнд (или правильное преобразование невозможно) c: \ программные файлы (x86) \ microsoft visual studio \ 2017 \ community \ vc \ tools \ msvc \ 14.15.26726 \ include \ алгоритма 3835
//KontenManager.h
#pragma once
#include "Konto.h"
#include <vector>
class Kontenmanager
{
private:
vector<Konto> Konten;
public:
Kontenmanager();
~Kontenmanager();
string getKontenListe() const;
};
//Kontenmanager.cpp
#include "pch.h"
#include "Kontenmanager.h"
#include <sstream>
#include <algorithm>
#include <iomanip>
Kontenmanager::Kontenmanager()
{
}
Kontenmanager::~Kontenmanager()
{
}
string Kontenmanager::getKontenListe() const
{
stringstream out;
sort(Konten.begin(), Konten.end()); //<----------- Here is my problem
//do some stuff
}
//Konto.h
#pragma once
#include <string>
using namespace std;
class Konto
{
private:
int kontoNr;
double saldo;
string inhaber;
int pin;
public:
Konto(int Kontonummer, string inhaber, int pin);
~Konto();
int getKontonummer() const;
};
bool operator<(const Konto &k1, const Konto &k2);
bool operator==(const Konto &k1, const Konto &k2);
//Konto.cpp
#include "pch.h"
#include "Konto.h"
Konto::Konto(int Kontonummer, string inhaber, int pin) :kontoNr(Kontonummer)
{
this->kontoNr = Kontonummer;
this->inhaber = inhaber;
this->pin = pin;
this->saldo = 0.0;
}
Konto::~Konto()
{
}
int Konto::getKontonummer() const
{
return kontoNr;
}
bool operator<(const Konto &k1, const Konto &k2)
{
return k1.getKontonummer() < k2.getKontonummer();
}
bool operator==(const Konto &k1, const Konto &k2)
{
return k1.getKontonummer() == k2.getKontonummer();
}