From 6b80455e7a8739cfe19968e2a7e8a9c93dab1252 Mon Sep 17 00:00:00 2001 From: erbifion Date: Mon, 6 May 2013 18:01:36 +0300 Subject: [PATCH] Update ex11.cpp --- ch05/ex11.cpp | 57 +++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 29 deletions(-) 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; + }