#include <iostream>
#include <vector>
using namespace std;
// 3. Implement count() yourself. Test it.
template<typename Iter, typename T>
typename iterator_traits<Iter>::value_type
count(Iter first, Iter last, T value)
// T should be of type int or double
{
typename iterator_traits<Iter>::value_type sum = 0;
for (Iter it = first; it != last; it++)
{
if (*it == value)
{
sum++;
}
}
return sum;
}
int main()
{
vector<int> v {1, 2, 3, 1, 5};
cout << count(v.begin(), v.end(), 1) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIDMuIEltcGxlbWVudCBjb3VudCgpIHlvdXJzZWxmLiBUZXN0IGl0LgoKdGVtcGxhdGU8dHlwZW5hbWUgSXRlciwgdHlwZW5hbWUgVD4KdHlwZW5hbWUgaXRlcmF0b3JfdHJhaXRzPEl0ZXI+Ojp2YWx1ZV90eXBlCmNvdW50KEl0ZXIgZmlyc3QsIEl0ZXIgbGFzdCwgVCB2YWx1ZSkKLy8gVCBzaG91bGQgYmUgb2YgdHlwZSBpbnQgb3IgZG91YmxlCnsKICAgIHR5cGVuYW1lIGl0ZXJhdG9yX3RyYWl0czxJdGVyPjo6dmFsdWVfdHlwZSBzdW0gPSAwOwogICAgZm9yIChJdGVyIGl0ID0gZmlyc3Q7IGl0ICE9IGxhc3Q7IGl0KyspCiAgICB7CiAgICAgICAgaWYgKCppdCA9PSB2YWx1ZSkKICAgICAgICB7CiAgICAgICAgICAgIHN1bSsrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBzdW07Cn0KCmludCBtYWluKCkKewogICAgdmVjdG9yPGludD4gdiB7MSwgMiwgMywgMSwgNX07CiAgICBjb3V0IDw8IGNvdW50KHYuYmVnaW4oKSwgdi5lbmQoKSwgMSkgPDwgZW5kbDsKICAgIHJldHVybiAwOwp9Cg==