#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct p {
int x,y;
p(const int x, const int y) : x(x), y(y) {};
bool operator==(const p& other) const { return x == other.y && y == other.y; };
};
int findInVector(const std::vector<p> & vecOfElements, const p & element)
{
int result;
auto it = std::find_if(vecOfElements.begin(), vecOfElements.end(), [&temp = element]
(const p& pp) -> bool { return temp == pp; });
if (it != vecOfElements.end())
{
result = distance(vecOfElements.begin(), it);
}
else
{
result = -1;
}
return result;
}
int main(){
p test = p(1,2);
std::vector<p> pvector;
pvector.push_back(test);
std::cout << findInVector(pvector,test);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHAgewogICAgaW50IHgseTsKICAgIHAoY29uc3QgaW50IHgsIGNvbnN0IGludCB5KSA6IHgoeCksIHkoeSkge307CiAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgcCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIHggPT0gb3RoZXIueSAmJiB5ID09IG90aGVyLnk7IH07Cn07CgppbnQgZmluZEluVmVjdG9yKGNvbnN0IHN0ZDo6dmVjdG9yPHA+ICAmIHZlY09mRWxlbWVudHMsIGNvbnN0IHAgJiBlbGVtZW50KQp7CiAgICBpbnQgcmVzdWx0OwoKICAgIGF1dG8gaXQgPSBzdGQ6OmZpbmRfaWYodmVjT2ZFbGVtZW50cy5iZWdpbigpLCB2ZWNPZkVsZW1lbnRzLmVuZCgpLCBbJnRlbXAgPSBlbGVtZW50XQogICAgICAgICAgICAoY29uc3QgcCYgcHApIC0+IGJvb2wgeyByZXR1cm4gdGVtcCA9PSBwcDsgfSk7CgogICAgaWYgKGl0ICE9IHZlY09mRWxlbWVudHMuZW5kKCkpCiAgICB7CiAgICAgICAgcmVzdWx0ID0gZGlzdGFuY2UodmVjT2ZFbGVtZW50cy5iZWdpbigpLCBpdCk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgcmVzdWx0ID0gLTE7CiAgICB9CgogICAgcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4oKXsKICAgIHAgdGVzdCA9IHAoMSwyKTsKICAgIHN0ZDo6dmVjdG9yPHA+IHB2ZWN0b3I7CiAgICBwdmVjdG9yLnB1c2hfYmFjayh0ZXN0KTsKICAgIHN0ZDo6Y291dCA8PCBmaW5kSW5WZWN0b3IocHZlY3Rvcix0ZXN0KTsKfQ==