1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include <map> #include <string> #include <cstdio> using namespace std; #define WITH_TEMPLATE 1 #ifdef WITH_TEMPLATE template <class C> struct MyClass : public map<string, C> #else struct MyClass : public map<string, int> #endif { bool haskey(const string &s) { #ifdef WITH_TEMPLATE typename MyClass<C>::iterator it = this->find(s); return (it != this->end()); #else iterator it = find(s); return (it != end()); #endif } }; int main() { #ifdef WITH_TEMPLATE MyClass<int> m; #else MyClass m; #endif m["test"] = 10; printf("%d %d\n", m.haskey("test"), m.haskey("no")); } |
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGNzdGRpbz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIFdJVEhfVEVNUExBVEUgMQoKI2lmZGVmIFdJVEhfVEVNUExBVEUKdGVtcGxhdGUgPGNsYXNzIEM+CnN0cnVjdCBNeUNsYXNzIDogcHVibGljIG1hcDxzdHJpbmcsIEM+CiNlbHNlCnN0cnVjdCBNeUNsYXNzIDogcHVibGljIG1hcDxzdHJpbmcsIGludD4KI2VuZGlmCnsKICAgIGJvb2wgaGFza2V5KGNvbnN0IHN0cmluZyAmcykKICAgIHsKI2lmZGVmIFdJVEhfVEVNUExBVEUKICAgICAgICB0eXBlbmFtZSBNeUNsYXNzPEM+OjppdGVyYXRvciBpdCA9IHRoaXMtPmZpbmQocyk7CiAgICAgICAgcmV0dXJuIChpdCAhPSB0aGlzLT5lbmQoKSk7CiNlbHNlCglpdGVyYXRvciBpdCA9IGZpbmQocyk7CiAgICAgICAgcmV0dXJuIChpdCAhPSBlbmQoKSk7CiNlbmRpZgogICAgfQp9OwoKaW50IG1haW4oKQp7CiNpZmRlZiBXSVRIX1RFTVBMQVRFCiAgICBNeUNsYXNzPGludD4gbTsKI2Vsc2UKICAgIE15Q2xhc3MgbTsKI2VuZGlmCiAgICBtWyJ0ZXN0Il0gPSAxMDsgICAgCiAgICBwcmludGYoIiVkICVkXG4iLCBtLmhhc2tleSgidGVzdCIpLCBtLmhhc2tleSgibm8iKSk7Cn0K
-
upload with new input
-
result: Success time: 0s memory: 3032 kB returned value: 0
999
1 0
-
result: Success time: 0s memory: 2988 kB returned value: 0
1
1 0
-
result: Success time: 0s memory: 2860 kB returned value: 0
1 0


