Licheng Fang wrote: > Hi, I'm learning STL and I wrote some simple code to compare the > efficiency of python and STL. > > //C++ > #include <iostream> > #include <string> > #include <vector> > #include <set> > #include <algorithm> > using namespace std; > > int main(){ > vector<string> a; > for (long int i=0; i<10000 ; ++i){ > a.push_back("What do you know?"); > a.push_back("so long..."); > a.push_back("chicken crosses road"); > a.push_back("fool"); > } > set<string> b(a.begin(), a.end()); > unique_copy(b.begin(), b.end(), ostream_iterator<string>(cout, "\n")); > }
I think you probably want this C++ code instead: //C++ #include <iostream> #include <string> #include <vector> #include <set> #include <algorithm> using namespace std; int main(){ vector<string> a; a.reserve( 40000 ); //<------------------ note this change for (long int i=0; i<10000 ; ++i){ a.push_back("What do you know?"); a.push_back("so long..."); a.push_back("chicken crosses road"); a.push_back("fool"); } set<string> b(a.begin(), a.end()); unique_copy(b.begin(), b.end(), ostream_iterator<string>(cout, "\n")); } It will run a lot faster if it doesn't have to keep resizing the array. -- http://mail.python.org/mailman/listinfo/python-list