Регистрация
24 Мар 2013
Сообщения
68
Репутация
1
Спасибо
1
Монет
0
Нужно создать небольшую программу, в которой у пользователя будет запрошен список слов, пока он не оставит строку ввода пустой. После этого на экране должны быть показаны слова, введенные пользователем, но без повторов, – каждое по одному разу. При этом слова должны быть отображены в том же порядке, в каком их вводили с клавиатуры. Например, если пользователь на запрос программы введет



следующий список слов:





first



second



first



third



second





программа должна вывести:





first



second



third
 
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
vector <string> s; string w;
while(getline(cin,w),w.length())
if(find(s.begin(),s.end(),w)==s.end())s.push_back(w);
for(string &w:s)cout<<w<<endl;}
 
#include <iostream>
#include <string>
using namespace std;
int main()
{
string x;
string o;
string t;
cin >> x;
cin >> o;
cin >> t;
cout << x << endl;
cout << o << endl;
cout << t << endl;
}
 
#include <iostream>
#include <unordered_set>

using namespace std;

int main()
{
unordered_set<string> words;
string word;
while(true)
{
cin >> noskipws >> word; //noskipws для приема нулевых строк
if (word.length()) words.insert(word); else break;
cin.ignore(); //убирает энтер, иначе noskip сработает на него
}
cout << "=====================================" << endl;
for (auto& i : words) cout << i << endl;
}

основано на неупорядоченном сете, который сохраняет только уникальные слова и не сортирует их
 
Назад
Сверху