Ruby is also not far away :-) Here's my code:
++++++++++++++++++++++++++++++++++++++++ require 'time' def f a = [] 1000000.times do a.push "What do you know" a.push "so long ..." a.push "chicken crosses road" a.push "fool" end b = a.uniq b.each do |x| puts x end end def f2 a = Array.new(4000000) 1000000.times do |i| a[i] = "What do you know" a[i+1] = "so long ..." a[i+2] = "chicken crosses road" a[i+3] = "fool" end b = a.uniq b.each do |x| puts x end end f_start = Time.now f f_end = Time.now f2_start = Time.now f2 f2_end = Time.now puts "f: Elapsed time: #{f_end - f_start} sec." puts "f2: Elapsed time: #{f2_end - f_start} sec." ++++++++++++++++++++++++++++++++++++++++++ And the benchmark result: What do you know so long ... chicken crosses road fool What do you know so long ... chicken crosses road fool nil f: Elapsed time: 3.600294 sec. f2: Elapsed time: 11.182927 sec. ++++++++++++++++++++++++++++++++++++++++++ I like ruby because its purity. :p 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")); > } > > #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? -- http://mail.python.org/mailman/listinfo/python-list