Python and STL efficiency

Licheng Fang fanglicheng at gmail.com
Mon Aug 21 02:52:16 EDT 2006


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"));
}

#python
def f():
	a = []
	for i in range(10000):
		a.append('What do you know')
		a.append('so long...')
		a.append('chicken crosses road')
		a.append('fool')
	b = set(a)
	for s in b:
		print s

I was using VC++.net and IDLE, respectively. I had expected C++ to be
way faster. However, while the python code gave the result almost
instantly, the C++ code took several seconds to run! Can somebody
explain this to me? Or is there something wrong with my code?




More information about the Python-list mailing list