Я пытаюсь копировать слова из одного файла в другой в CPP, вот мой код:Копирование слов из одного файла в другой в CPP
int main()
{
string from, to;
cin >> from >> to;
ifstream ifs(from);
ofstream ofs(to);
set<string> words(istream_iterator<string>(ifs), istream_iterator<string>());
copy(words.begin(), words.end(), ostream_iterator<string>(ofs, "\n"));
return !ifs.eof() || !ofs;
}
таким образом, я получаю ошибку компиляции:
expression must have class type
на линии, где я называю копию()
Если изменить конструкцию итераторы на следующее работает:
set<string> words{ istream_iterator<string>{ ifs }, istream_iterator<string>{} };
Я думал, что выбирать между() и {}, когда инициализация объектов в cpp является вопросом выбора, но я думаю, что я ошибаюсь. Может кто-нибудь объяснить это мне?
На самом деле 'установить слова (istream_iterator {}, IFS istream_iterator {});' достаточно –
Slava