#include <iostream>
#include <string>
#include <vector>
#include <utility>
using namespace std;

struct ObjectName
{
	string name;
};

int main()
{
	ObjectName* m_objects0 = new ObjectName[10];
	ObjectName* m_objects1 = new ObjectName[10];

	for(int i = 0; i < 10; ++i)
	{
		m_objects0[i].name = "object A" + to_string(i+1);
		m_objects1[i].name = "object B" + to_string(i+1);
	}
	
	ObjectName* m_objects0_end = m_objects0 + 10;
	ObjectName* m_objects1_end = m_objects1 + 10;

	vector<pair<ObjectName*, ObjectName*>> object_ptrs;
	object_ptrs.emplace_back(m_objects0, m_objects0_end);
	object_ptrs.emplace_back(m_objects1, m_objects1_end);

	for(auto &p : object_ptrs)
	{
		ObjectName* m_pObject = p.first;
		ObjectName* m_pObjects_end = p.second;

		while (m_pObject != m_pObjects_end)
		{
	    	cout << m_pObject->name << endl;
    		++m_pObject;
		}
	}

	delete[] m_objects0;
	delete[] m_objects1;
}