#include <algorithm>
#include <iostream>
#include <string>
#include <map>
using UINT = unsigned int;
struct AsnObjectIdentifier
{
UINT idLength;
UINT * ids;
};
struct AsnObjectIdentifierComparator
{
bool operator()(const AsnObjectIdentifier& lhs, const AsnObjectIdentifier& rhs) const
{
return std::lexicographical_compare(lhs.ids, lhs.ids + lhs.idLength,
rhs.ids, rhs.ids + rhs.idLength);
}
};
using MibMap = std::map<AsnObjectIdentifier, std::string, AsnObjectIdentifierComparator>;
int main()
{
UINT expectedOID1ids[] = { 1, 3, 6, 1, 1, 1, 2, 1 };
AsnObjectIdentifier expectedOID1 = { 8, expectedOID1ids };
MibMap map{{expectedOID1, "present"}};
std::cout << map.size() << std::endl;
if (map.find(expectedOID1) == map.end()) {
std::cout << "Not found" << std::endl;
} else {
std::cout << "Found" << std::endl;
}
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWFwPgoKdXNpbmcgVUlOVCA9IHVuc2lnbmVkIGludDsKCnN0cnVjdCBBc25PYmplY3RJZGVudGlmaWVyCnsKICAgIFVJTlQgICBpZExlbmd0aDsKICAgIFVJTlQgKiBpZHM7Cn07CgpzdHJ1Y3QgQXNuT2JqZWN0SWRlbnRpZmllckNvbXBhcmF0b3IKewogICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IEFzbk9iamVjdElkZW50aWZpZXImIGxocywgY29uc3QgQXNuT2JqZWN0SWRlbnRpZmllciYgcmhzKSBjb25zdAogICAgewogICAgICAgIHJldHVybiBzdGQ6OmxleGljb2dyYXBoaWNhbF9jb21wYXJlKGxocy5pZHMsIGxocy5pZHMgKyBsaHMuaWRMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmhzLmlkcywgcmhzLmlkcyArIHJocy5pZExlbmd0aCk7CiAgICB9Cn07Cgp1c2luZyBNaWJNYXAgPSBzdGQ6Om1hcDxBc25PYmplY3RJZGVudGlmaWVyLCBzdGQ6OnN0cmluZywgQXNuT2JqZWN0SWRlbnRpZmllckNvbXBhcmF0b3I+OwoKCmludCBtYWluKCkKewogICAgVUlOVCBleHBlY3RlZE9JRDFpZHNbXSA9IHsgMSwgMywgNiwgMSwgMSwgMSwgMiwgMSB9OwogICAgQXNuT2JqZWN0SWRlbnRpZmllciBleHBlY3RlZE9JRDEgPSB7IDgsIGV4cGVjdGVkT0lEMWlkcyB9OwogICAgTWliTWFwIG1hcHt7ZXhwZWN0ZWRPSUQxLCAicHJlc2VudCJ9fTsKCiAgICBzdGQ6OmNvdXQgPDwgbWFwLnNpemUoKSA8PCBzdGQ6OmVuZGw7CgogICAgaWYgKG1hcC5maW5kKGV4cGVjdGVkT0lEMSkgPT0gbWFwLmVuZCgpKSB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJOb3QgZm91bmQiIDw8IHN0ZDo6ZW5kbDsKICAgIH0gZWxzZSB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJGb3VuZCIgPDwgc3RkOjplbmRsOwogICAgfQp9