#include <iostream>
#include <vector>
struct MyNum
{
int num;
MyNum(int i) : num(i) {}
bool operator<(const MyNum& rhs) const
{
return num < rhs.num;
}
bool operator==(const MyNum& rhs) const
{
return num == rhs.num;
}
};
void test(const std::vector<MyNum>& a, const std::vector<MyNum>& b)
{
if (a == b)
{
std::cout << "a == b\n";
}
else if (a < b)
{
std::cout << "a < b\n";
}
else if (a > b)
{
std::cout << "a > b\n";
}
}
int main()
{
std::vector<MyNum> a1{ 1,2,3,4,5 };
std::vector<MyNum> a2{ 1,2,3,4,5 };
std::vector<MyNum> b1{ 1,2,3,4,6 };
std::vector<MyNum> b2{ 1,2,3,4,4 };
test(a1, a2);
test(a1, b1);
test(a1, b2);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKc3RydWN0IE15TnVtCnsKCWludCBudW07CglNeU51bShpbnQgaSkgOiBudW0oaSkge30KCWJvb2wgb3BlcmF0b3I8KGNvbnN0IE15TnVtJiByaHMpIGNvbnN0Cgl7CgkJcmV0dXJuIG51bSA8IHJocy5udW07Cgl9Cglib29sIG9wZXJhdG9yPT0oY29uc3QgTXlOdW0mIHJocykgY29uc3QKCXsKCQlyZXR1cm4gbnVtID09IHJocy5udW07Cgl9Cn07Cgp2b2lkIHRlc3QoY29uc3Qgc3RkOjp2ZWN0b3I8TXlOdW0+JiBhLCBjb25zdCBzdGQ6OnZlY3RvcjxNeU51bT4mIGIpCnsKCWlmIChhID09IGIpCgl7CgkJc3RkOjpjb3V0IDw8ICJhID09IGJcbiI7Cgl9CgllbHNlIGlmIChhIDwgYikKCXsKCQlzdGQ6OmNvdXQgPDwgImEgPCBiXG4iOwoJfQoJZWxzZSBpZiAoYSA+IGIpCgl7CgkJc3RkOjpjb3V0IDw8ICJhID4gYlxuIjsKCX0KfQoKaW50IG1haW4oKQp7CglzdGQ6OnZlY3RvcjxNeU51bT4gYTF7IDEsMiwzLDQsNSB9OwoJc3RkOjp2ZWN0b3I8TXlOdW0+IGEyeyAxLDIsMyw0LDUgfTsKCXN0ZDo6dmVjdG9yPE15TnVtPiBiMXsgMSwyLDMsNCw2IH07CglzdGQ6OnZlY3RvcjxNeU51bT4gYjJ7IDEsMiwzLDQsNCB9OwoJdGVzdChhMSwgYTIpOwoJdGVzdChhMSwgYjEpOwoJdGVzdChhMSwgYjIpOwoJcmV0dXJuIDA7Cn0K