#include <iostream>
#include <iterator>
#include <string>
#include <type_traits>
#include <vector>
template <typename C>
using Value_Type = typename std::remove_reference<decltype(*std::begin(std::declval<C>()))>::type;
template<typename C, typename V>
std::vector<Value_Type<C>*> find_all(C& cont, V v)
{
std::vector<Value_Type<C>*> res;
for (auto& x : cont)
if (x == v)
res.push_back(&x);
return res;
}
int main()
{
std::string m{"Mary had a little lamb"};
for (const auto p: find_all(m,'a'))
std::cerr << *p;
std::cerr << "\n";
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CiNpbmNsdWRlIDx2ZWN0b3I+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgQz4KICAgIHVzaW5nIFZhbHVlX1R5cGUgPSB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoKnN0ZDo6YmVnaW4oc3RkOjpkZWNsdmFsPEM+KCkpKT46OnR5cGU7Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBWPgpzdGQ6OnZlY3RvcjxWYWx1ZV9UeXBlPEM+Kj4gZmluZF9hbGwoQyYgY29udCwgViB2KSAKewogICAgc3RkOjp2ZWN0b3I8VmFsdWVfVHlwZTxDPio+IHJlczsgCgogICAgZm9yIChhdXRvJiB4IDogY29udCkgCiAgICAgICAgaWYgKHggPT0gdikgCiAgICAgICAgICAgIHJlcy5wdXNoX2JhY2soJngpOwoKICAgIHJldHVybiByZXM7Cn0KCmludCBtYWluKCkKewoJc3RkOjpzdHJpbmcgbXsiTWFyeSBoYWQgYSBsaXR0bGUgbGFtYiJ9OyAKCWZvciAoY29uc3QgYXV0byBwOiBmaW5kX2FsbChtLCdhJykpCiAgICAJc3RkOjpjZXJyIDw8ICpwOyAKICAgIHN0ZDo6Y2VyciA8PCAiXG4iOwp9