У меня возникли трудности с использованием istream_iterator для этой цели. У меня есть файл, который я хочу читать по строкам в наборе. Я должен использовать итератор, и мне было интересно, что-то не так с моим кодом или моим подходом.istream_iterator считывает значения из файла в набор
Помощь очень ценится. Вот упрощенная версия кода я пишу:
main.cpp
#include <iostream>
#include <fstream>
#include <string>
#include <set>
using namespace std;
int main() {
ifstream file("fruits.txt");
set<string> M;
copy(istream_iterator<string>(file),
istream_iterator<string>(),
[](string & s){ M.insert(s); });
for(auto val : M) {
cout << val << ", ";
}
return 0;
}
fruits.txt
banana
apple
pear
strawberry
blueberry
peach
pear
apple
Ошибки:
main.cpp:16:26: Variable 'M' cannot be implicitly
captured in a lambda with no capture-default specified
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr
/include/c++/v1/algorithm:1750:49: Cannot increment value of type '(lambda at
/Users/cnapoli22/Downloads/TEST SHIT/TEST SHIT/main.cpp:16:10)'
Вы должны указать ошибку, которую вы получаете, когда задаете вопрос. – Simple