Есть задача: "Во входной строке записана последовательность чисел через пробел. Для каждого числа выведите слово YES (в отдельной строке), если это число ранее встречалось в последовательности или NO, если не встречалось" Вопрос: Вводится неопределенное кол-во чисел, а как ввести это неопределенное кол-во чисел(вводить нужно в множество "set") Буду благодарен)
Если вы читаете из терминала, то можно сделать, как сказал Harry. Читаем строку, превращаем её в поток и читаем. Реализация:
#include <iostream>
#include <string>
#include <set>
#include <sstream>
using namespace std;
int main() {
string s;
set <int> S;
int n = 0;
getline(cin, s);
istringstream i(s);
while (i >> n)
if (S.count(n) == 0) {
cout << "NO\n";
S.insert(n);
}
else
cout << "YES\n";
return 0;
}
Для файла можно попробовать читать до конца файла. Если в файле не 1 строка, то использовать первый метод, если же одна, то можно так:
#include <fstream>
#include <iostream>
#include <string>
#include <set>
using namespace std;
int main() {
set <int> S;
int n;
ifstream i("input.txt");
while (i >> n)
if (S.count(n) == 0) {
cout << "NO\n";
S.insert(n);
}
else
cout << "YES\n";
return 0;
}
Продвижение своими сайтами как стратегия роста и независимости