Я определил набор объектов класса, классом является Person. Ниже приведен код -
#include<iostream>
#include<set>
#include<functional>
using namespace std;
class Person {
public:
int age;
string name;
bool operator < (const Person& rhs) const { return age < rhs.age; }
};
int main()
{
set<Person> Set = { (18,"John"),(16,"Sean") };
for (const auto& e: Set)
{
cout << e.age << " " << e.name;;
}
return 0;
}
При создании кода появляется следующая ошибка:
Error C2664 'Person::Person(Person &&)': cannot convert argument 1 from '_Ty' to 'const Person &'
Я просто пытаюсь перебрать все элементы (объекты класса) из набора и распечатать их значения, но я понятия не имею, почему эта ошибка появляется. Я искал это онлайн и ничего не получил. Я думаю, что ошибка может быть в функции сравнения, которую я пишу, но я только что узнал все это сегодня и теперь я застрял. Может кто-нибудь, пожалуйста, проведите меня до конца?