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

Reply via email to