Код, который вы разместили, в порядке и должен компилироваться.
map <int, string> * myArray = new map<int, string>[10];
Это значение по умолчанию создает 10 карт в куче, но вы сказали в вопросе, что вы хотите, чтобы каждый элемент вашего ARRAY содержал ключ иценность.Пожалуйста, обратите внимание, что карты не являются массивами, и их реализация и использование сильно различаются.
Я думаю, что то, что вы можете искать, это
pair<int, string>* myArray = new pair<int, string>[10];
// or alternatively
vector<pair<int, string>> myArray(10);