#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;
template<typename Container>
auto get_pointers(const Container& c)
{
vector<decltype(begin(c))> ptrvector;
for (auto iter = begin(c); iter != end(c); ++iter)
ptrvector.push_back(iter);
return ptrvector;
}
int main()
{
vector<int> testvector = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
auto ptrs1 = get_pointers(testvector);
for (auto p : ptrs1)
cout << *p << " ";
int testarray[] = { 11, 12, 13, 14, 15, 16, 17, 18, 19, 10 };
auto ptrs2 = get_pointers(testarray);
for (auto p : ptrs2)
cout << *p << " ";
unordered_set<int> testset = { 21, 22, 23, 24, 25, 26, 27, 28, 29, 20 };
auto ptrs3 = get_pointers(testset);
for (auto p : ptrs3)
cout << *p << " ";
return 0;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDx2ZWN0b3I+CiAgICAjaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4KICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgICAgCiAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXI+CiAgICBhdXRvIGdldF9wb2ludGVycyhjb25zdCBDb250YWluZXImIGMpCiAgICB7CiAgICAgICAgdmVjdG9yPGRlY2x0eXBlKGJlZ2luKGMpKT4gcHRydmVjdG9yOwogICAgIAogICAgICAgIGZvciAoYXV0byBpdGVyID0gYmVnaW4oYyk7IGl0ZXIgIT0gZW5kKGMpOyArK2l0ZXIpCiAgICAgICAgICAgIHB0cnZlY3Rvci5wdXNoX2JhY2soaXRlcik7CiAgICAgCiAgICAgICAgcmV0dXJuIHB0cnZlY3RvcjsKICAgIH0KICAgICAKICAgIGludCBtYWluKCkKICAgIHsKICAgIAl2ZWN0b3I8aW50PiB0ZXN0dmVjdG9yID0geyAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAwIH07CiAgICAJYXV0byBwdHJzMSA9IGdldF9wb2ludGVycyh0ZXN0dmVjdG9yKTsKICAgIAlmb3IgKGF1dG8gcCA6IHB0cnMxKQogICAgCSAgICBjb3V0IDw8ICpwIDw8ICIgIjsKICAgICAKICAgIAlpbnQgdGVzdGFycmF5W10gPSB7IDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDEwIH07CiAgICAJYXV0byBwdHJzMiA9IGdldF9wb2ludGVycyh0ZXN0YXJyYXkpOwogICAgCWZvciAoYXV0byBwIDogcHRyczIpCiAgICAJICAgIGNvdXQgPDwgKnAgPDwgIiAiOwogICAgIAogICAgCXVub3JkZXJlZF9zZXQ8aW50PiB0ZXN0c2V0ID0geyAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAyMCB9OwogICAgCWF1dG8gcHRyczMgPSBnZXRfcG9pbnRlcnModGVzdHNldCk7CiAgICAJZm9yIChhdXRvIHAgOiBwdHJzMykKICAgIAkgICAgY291dCA8PCAqcCA8PCAiICI7CiAgICAgCiAgICAJcmV0dXJuIDA7CiAgICB9