diff --git a/ch05/ex11.cpp b/ch05/ex11.cpp index a47f798..aad0e17 100644 --- a/ch05/ex11.cpp +++ b/ch05/ex11.cpp @@ -1,35 +1,34 @@ #include #include #include -#include - +#include using namespace std; -int main() -{ - string s; - vector words; - set sortedWords; - - cin >> s; - while (s != "Quit") - { - if (sortedWords.insert(s).second) - { - words.push_back(s); - } - cin >> s; - } - - cout << "In entered order:" << endl; - for(vector::const_iterator i = words.begin(); i != words.end(); i++) - { - cout << *i << endl; - } +void display(const vector& v ) { + typedef vector::const_iterator vi; + + for(vi i=v.begin(); i!=v.end(); i++) cout << *i << "\t"; + cout << endl; + } - cout << "In sorted order: " << endl; - for(set::const_iterator i = sortedWords.begin(); i != sortedWords.end(); i++) - { - cout << *i << endl; - } -} +int main(void ) { + + string s; + vector vs; + + cin >> s; + while(s != "quit" ) { + vs.push_back(s ); + cin >> s; + } + + sort(vs.begin(), vs.end() ); + display(vs); + + vector tmp; + unique_copy(vs.begin(), vs.end(), back_inserter(tmp) ); + + display(tmp); + + return 0; + }