#include <iterator>
#include <iostream>
#include <algorithm>
class myIterator : public std::iterator<std::input_iterator_tag, char>
{
char *p;
public:
// Implementation
myIterator(char* x) :p(x) { };
myIterator(const myIterator& i) : p(i.p) { };
myIterator& operator++() { ++p; return *this; };
myIterator operator++(int) {myIterator tmp(*this); operator++(); return tmp; };
bool operator==(const myIterator& rhs) { return p == rhs.p; };
bool operator!=(const myIterator& rhs) { return p != rhs.p; };
char& operator*() { return *p; };
};
int main() {
char arr[] = "asdasdasdasd";
std::cout << std::count(myIterator(arr), myIterator(arr + 5), '@') << std::endl;
}
I2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxhbGdvcml0aG0+CgpjbGFzcyBteUl0ZXJhdG9yIDogcHVibGljIHN0ZDo6aXRlcmF0b3I8c3RkOjppbnB1dF9pdGVyYXRvcl90YWcsIGNoYXI+CnsKICAgIGNoYXIgKnA7CgpwdWJsaWM6CgogICAgLy8gSW1wbGVtZW50YXRpb24KICAgIG15SXRlcmF0b3IoY2hhciogeCkgOnAoeCkgeyB9OwogICAgbXlJdGVyYXRvcihjb25zdCBteUl0ZXJhdG9yJiBpKSA6IHAoaS5wKSB7IH07CiAgICBteUl0ZXJhdG9yJiBvcGVyYXRvcisrKCkgeyArK3A7IHJldHVybiAqdGhpczsgfTsKICAgIG15SXRlcmF0b3Igb3BlcmF0b3IrKyhpbnQpIHtteUl0ZXJhdG9yIHRtcCgqdGhpcyk7IG9wZXJhdG9yKysoKTsgcmV0dXJuIHRtcDsgfTsKICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBteUl0ZXJhdG9yJiByaHMpIHsgcmV0dXJuIHAgPT0gcmhzLnA7IH07CiAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgbXlJdGVyYXRvciYgcmhzKSB7IHJldHVybiBwICE9IHJocy5wOyB9OwogICAgY2hhciYgb3BlcmF0b3IqKCkgeyByZXR1cm4gKnA7IH07Cn07CgppbnQgbWFpbigpIHsKICAgIGNoYXIgYXJyW10gPSAiYXNkYXNkYXNkYXNkIjsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmNvdW50KG15SXRlcmF0b3IoYXJyKSwgbXlJdGVyYXRvcihhcnIgKyA1KSwgJ0AnKSA8PCBzdGQ6OmVuZGw7Cn0K