    #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;
    }