как использовать метод класса с объектами, которые находятся внутри контейнера list
учусь на c++, в классе должны быть объекты в виде билетов, а так же контейнер list для работы с ними (добавление, удаление, вывод и вывод по критериям), однако на выводе всегда выдаёт ошибку, и я не понимаю почему
#include <iostream>
#include <string>
#include <list>
#include <iterator>
using namespace std;
class Ticket {
private:
string pn;
string sn;
string d;
int n;
public:
Ticket(string _pn = " ", int _n = 0, string _sn = " ", string _d = " ") {
pn = _pn;
n = _n;
sn = _sn;
d = _d;
}
void print_some(int n1, string d1) {
if (n1 == n)
if (d1 == d)
cout << "Место прибытия:" << pn << "\n" << "Номер рейса:" << n << "\n" << "ФИО:" << sn << "\n" << "Дата:" << d << endl;
else cout << "Не найдено";
}
void print() {
cout << "Место прибытия:" << pn << "\n" << "Номер рейса:" << n << "\n" << "ФИО:" << sn << "\n" << "Дата:" << d << endl;
}
friend ostream& operator<<(ostream& cout, const Ticket& tckt);
};
ostream& operator<<(ostream& cout, const Ticket& tckt)
{
cout << "Место прибытия:" << tckt.pn << "\n"
<< "Номер рейса:" << tckt.n << "\n"
<< "ФИО:" << tckt.sn << "\n"
<< "Дата:" << tckt.d << endl;
return cout;
}
int main()
{
setlocale(LC_ALL, "RUS");
Ticket n1("Москва", 4, "А.Н.Петров", "12 декабря");
Ticket n2("Краснодар", 6, "Е.С.Иванова", "15 января");
Ticket n3("Владивосток", 4, "О.К.Антонов", "15 января");
list <Ticket> Manager = { n1, n2 };
Manager.insert(Manager.end(), n3);
Manager.remove(n1);
list <Ticket>::iterator it;
for (it = Manager.begin(); it != Manager.end(); it++)
{
it->print();
it->print_some(6, "15 января");
}
}
две ошибки и обе возникают в файле list
бинарный '==' : 'const Ticket' не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
Недопустимое условное выражение типа "void"
хотелось бы исправить так, чтобы программа хотя бы запустилась, а то я уже совсем теряюсь в догадках, что не так