Я пытался увидеть, как работает компаратор в cpp. Поэтому, когда я вставляю s1, оператор сравнения не вызывается, что имеет смысл. Но когда вставляется s2, оператор сравнения вызывался дважды. Почему?
Когда я проверил, я обнаружил, что оба раза при вызове первым аргументом компаратора был s2, а вторым аргументом был s1. Может ли кто-нибудь объяснить мне это?
#include
#include
#include
using std::string;
// Student Class
class student {
public:
// To store Name and Roll Number
string name;
int rollnum;
// Overloaded Constructor
student(string name, int rollnum)
{
this->name = name;
this->rollnum = rollnum;
}
};
// Comparator Class to compare 2 objects
class studentcompare {
public:
// Comparator function
bool operator()(const student& a,
const student& b) const
{
std::cout
Подробнее здесь: https://stackoverflow.com/questions/729 ... g-it-a-set