Licheng Fang wrote: > Hi, I'm learning STL and I wrote some simple code to compare the > efficiency of python and STL. > > > 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?
Hi, I'm no C++ guru so cannot comment on the C++ code itself, however I do wonder if you tested your C++ code with other STL implementation such as gcc (gcc is available on windows as well, in various versions). What could be is that expanding the list in C++ is done in very small increments, leading to many re-allocations. Is it possible to pre-allocate the vector<> with sufficient entries? Also, your Python code as quoted, doesn't actually call your function f(). If you say that you get results instantly, I assume that you mean all 4 strings are actually printed to console? (I'm surprised that the console prints things that fast). btw, using range() in Python isn't very efficient, I think... Better to use xrange(). Asked a C++ collegue of mine to comment, and he strongly suspects that you're actually running it in the .Net runtime (your C++ code contains some C#-isms, such as omitting the '.h' in the include <> statements). Luck, --Tim -- http://mail.python.org/mailman/listinfo/python-list