Обработка карта файлов в c ++

Мне нужно одновременно писать в кучу файлов, поэтому я решил использовать map .

map<string, ofstream> MyFileMap; 

Я беру vector FileInd , который состоит, скажем, из "a" "b" "c" , и попробуйте открыть мои файлы с помощью:

for (vector<string>::iterator it = FileInd.begin(); iter != FileInd.end(); ++it){
    ...
    MyFileMap[*it].open("/myhomefolder/"+(*it)+".");
}

Я получаю сообщение об ошибке

request for member 'open' in ..... , which is of non-class type 'std::ofstream*'

Я пытался переключить to

map<string, ofstream*> MyFileMap;

Но это тоже не сработало.

Кто-нибудь может помочь?

Спасибо.

Уточнение:

Я пробовал оба

map MyFileMap; map MyFileMap;

с обоими

.open -> open

ни один из 4 вариантов не работает.

Решение (предложенное в коде Роба ниже):

В основном, я забыл «новый», у меня работает следующее:

map<string, ofstream*> MyFileMap;
MyFileMap[*it] = new ofstream("/myhomefolder/"+(*it)+".");
7
задан LazyCat 4 February 2012 в 15:29
поделиться