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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #include <vector> #include <utility> #include <algorithm> #include <iterator> template<class container> struct iterator_type { typedef typename container::iterator iterator; typedef typename container::const_iterator const_iterator; }; template<class element, int size> struct iterator_type<element[size]> { typedef element* iterator; typedef const element* const_iterator; }; template<class element, int size> struct iterator_type<const element[size]> { typedef const element* iterator; typedef const element* const_iterator; }; template<class container> typename container::iterator begin(container& rhs){return rhs.begin();} template<class container> typename container::iterator begin(const container& rhs) {return rhs.begin();} template<class element, int size> element* begin(element(&rhs)[size]) {return rhs;} template<class container> typename container::iterator end(container& rhs) {return rhs.end();} template<class container> typename container::iterator end(const container& rhs) {return rhs.end();} template<class element, int size> element* end(element(&rhs)[size]) {return rhs+size;} template<class iter1, class iter2> iter1 search(iter1 stackbegin, iter1 stackend, iter2 needlebegin, iter2 needleend) {return std::search(stackbegin, stackend, needlebegin, needleend);} template<class iter1, class needlecontainer> iter1 search(iter1 stackbegin, iter1 stackend, const needlecontainer& needle) {return std::search(stackbegin, stackend, begin(needle), end(needle));} template<class stackcontainer, class needlecontainer> typename stackcontainer::iterator search(const stackcontainer& stack, const needlecontainer& needle) {return std::search(begin(stack), end(stack), begin(needle), end(needle));} template<class stackcontainer, class needlecontainer> typename iterator_type<stackcontainer>::iterator search(stackcontainer& stack, const needlecontainer& needle) {return std::search(begin(stack), end(stack), begin(needle), end(needle));} template<class stackcontainer, class needlecontainer> typename iterator_type<stackcontainer>::const_iterator search(const stackcontainer& stack, const needlecontainer& needle) {return std::search(begin(stack), end(stack), begin(needle), end(needle));} int main() { std::vector<char> str1; std::vector<char>::iterator it; it = search(str1, "Look for this"); const char* it2 = search("ABCDEFGHI", "DEF"); } |
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHV0aWxpdHk+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxpdGVyYXRvcj4KCnRlbXBsYXRlPGNsYXNzIGNvbnRhaW5lcj4Kc3RydWN0IGl0ZXJhdG9yX3R5cGUgewogICAgdHlwZWRlZiB0eXBlbmFtZSBjb250YWluZXI6Oml0ZXJhdG9yIGl0ZXJhdG9yOwogICAgdHlwZWRlZiB0eXBlbmFtZSBjb250YWluZXI6OmNvbnN0X2l0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwp9Owp0ZW1wbGF0ZTxjbGFzcyBlbGVtZW50LCBpbnQgc2l6ZT4Kc3RydWN0IGl0ZXJhdG9yX3R5cGU8ZWxlbWVudFtzaXplXT4gewogICAgdHlwZWRlZiBlbGVtZW50KiBpdGVyYXRvcjsKICAgIHR5cGVkZWYgY29uc3QgZWxlbWVudCogY29uc3RfaXRlcmF0b3I7Cn07CnRlbXBsYXRlPGNsYXNzIGVsZW1lbnQsIGludCBzaXplPgpzdHJ1Y3QgaXRlcmF0b3JfdHlwZTxjb25zdCBlbGVtZW50W3NpemVdPiB7CiAgICB0eXBlZGVmIGNvbnN0IGVsZW1lbnQqIGl0ZXJhdG9yOwogICAgdHlwZWRlZiBjb25zdCBlbGVtZW50KiBjb25zdF9pdGVyYXRvcjsKfTsKIAogICAgdGVtcGxhdGU8Y2xhc3MgY29udGFpbmVyPgogICAgdHlwZW5hbWUgY29udGFpbmVyOjppdGVyYXRvciBiZWdpbihjb250YWluZXImIHJocyl7cmV0dXJuIHJocy5iZWdpbigpO30KICAgIHRlbXBsYXRlPGNsYXNzIGNvbnRhaW5lcj4KICAgIHR5cGVuYW1lIGNvbnRhaW5lcjo6aXRlcmF0b3IgYmVnaW4oY29uc3QgY29udGFpbmVyJiByaHMpIHtyZXR1cm4gcmhzLmJlZ2luKCk7fQogICAgdGVtcGxhdGU8Y2xhc3MgZWxlbWVudCwgaW50IHNpemU+CiAgICBlbGVtZW50KiBiZWdpbihlbGVtZW50KCZyaHMpW3NpemVdKSB7cmV0dXJuIHJoczt9CiAgICB0ZW1wbGF0ZTxjbGFzcyBjb250YWluZXI+CiAgICB0eXBlbmFtZSBjb250YWluZXI6Oml0ZXJhdG9yIGVuZChjb250YWluZXImIHJocykge3JldHVybiByaHMuZW5kKCk7fQogICAgdGVtcGxhdGU8Y2xhc3MgY29udGFpbmVyPgogICAgdHlwZW5hbWUgY29udGFpbmVyOjppdGVyYXRvciBlbmQoY29uc3QgY29udGFpbmVyJiByaHMpIHtyZXR1cm4gcmhzLmVuZCgpO30KICAgIHRlbXBsYXRlPGNsYXNzIGVsZW1lbnQsIGludCBzaXplPgogICAgZWxlbWVudCogZW5kKGVsZW1lbnQoJnJocylbc2l6ZV0pIHtyZXR1cm4gcmhzK3NpemU7fQogCnRlbXBsYXRlPGNsYXNzIGl0ZXIxLCBjbGFzcyBpdGVyMj4KaXRlcjEgc2VhcmNoKGl0ZXIxIHN0YWNrYmVnaW4sIGl0ZXIxIHN0YWNrZW5kLCBpdGVyMiBuZWVkbGViZWdpbiwgaXRlcjIgbmVlZGxlZW5kKQp7cmV0dXJuIHN0ZDo6c2VhcmNoKHN0YWNrYmVnaW4sIHN0YWNrZW5kLCBuZWVkbGViZWdpbiwgbmVlZGxlZW5kKTt9CiAKdGVtcGxhdGU8Y2xhc3MgaXRlcjEsIGNsYXNzIG5lZWRsZWNvbnRhaW5lcj4KaXRlcjEgc2VhcmNoKGl0ZXIxIHN0YWNrYmVnaW4sIGl0ZXIxIHN0YWNrZW5kLCBjb25zdCBuZWVkbGVjb250YWluZXImIG5lZWRsZSkKe3JldHVybiBzdGQ6OnNlYXJjaChzdGFja2JlZ2luLCBzdGFja2VuZCwgYmVnaW4obmVlZGxlKSwgZW5kKG5lZWRsZSkpO30KIAp0ZW1wbGF0ZTxjbGFzcyBzdGFja2NvbnRhaW5lciwgY2xhc3MgbmVlZGxlY29udGFpbmVyPgp0eXBlbmFtZSBzdGFja2NvbnRhaW5lcjo6aXRlcmF0b3IKc2VhcmNoKGNvbnN0IHN0YWNrY29udGFpbmVyJiBzdGFjaywgY29uc3QgbmVlZGxlY29udGFpbmVyJiBuZWVkbGUpCntyZXR1cm4gc3RkOjpzZWFyY2goYmVnaW4oc3RhY2spLCBlbmQoc3RhY2spLCBiZWdpbihuZWVkbGUpLCBlbmQobmVlZGxlKSk7fQogCnRlbXBsYXRlPGNsYXNzIHN0YWNrY29udGFpbmVyLCBjbGFzcyBuZWVkbGVjb250YWluZXI+CnR5cGVuYW1lIGl0ZXJhdG9yX3R5cGU8c3RhY2tjb250YWluZXI+OjppdGVyYXRvcgpzZWFyY2goc3RhY2tjb250YWluZXImIHN0YWNrLCBjb25zdCBuZWVkbGVjb250YWluZXImIG5lZWRsZSkKe3JldHVybiBzdGQ6OnNlYXJjaChiZWdpbihzdGFjayksIGVuZChzdGFjayksIGJlZ2luKG5lZWRsZSksIGVuZChuZWVkbGUpKTt9Cgp0ZW1wbGF0ZTxjbGFzcyBzdGFja2NvbnRhaW5lciwgY2xhc3MgbmVlZGxlY29udGFpbmVyPgp0eXBlbmFtZSBpdGVyYXRvcl90eXBlPHN0YWNrY29udGFpbmVyPjo6Y29uc3RfaXRlcmF0b3IKc2VhcmNoKGNvbnN0IHN0YWNrY29udGFpbmVyJiBzdGFjaywgY29uc3QgbmVlZGxlY29udGFpbmVyJiBuZWVkbGUpCntyZXR1cm4gc3RkOjpzZWFyY2goYmVnaW4oc3RhY2spLCBlbmQoc3RhY2spLCBiZWdpbihuZWVkbGUpLCBlbmQobmVlZGxlKSk7fQogCmludCBtYWluKCkgewogICAgc3RkOjp2ZWN0b3I8Y2hhcj4gc3RyMTsKICAgIHN0ZDo6dmVjdG9yPGNoYXI+OjppdGVyYXRvciBpdDsgCiAgICBpdCA9IHNlYXJjaChzdHIxLCAiTG9vayBmb3IgdGhpcyIpOwogICAgY29uc3QgY2hhciogaXQyID0gc2VhcmNoKCJBQkNERUZHSEkiLCAiREVGIik7Cn0=
-
upload with new input
-
result: Success time: 0s memory: 2924 kB returned value: 0


