﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Simple is beautifull</title><link>http://www.cppblog.com/reginfo/</link><description>还需要副标题吗？</description><language>zh-cn</language><lastBuildDate>Sun, 05 Apr 2026 20:10:54 GMT</lastBuildDate><pubDate>Sun, 05 Apr 2026 20:10:54 GMT</pubDate><ttl>60</ttl><item><title>为什么Python的性能比较好呢？</title><link>http://www.cppblog.com/reginfo/archive/2006/03/31/4855.html</link><dc:creator>音乐虫子</dc:creator><author>音乐虫子</author><pubDate>Fri, 31 Mar 2006 07:28:00 GMT</pubDate><guid>http://www.cppblog.com/reginfo/archive/2006/03/31/4855.html</guid><wfw:comment>http://www.cppblog.com/reginfo/comments/4855.html</wfw:comment><comments>http://www.cppblog.com/reginfo/archive/2006/03/31/4855.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/reginfo/comments/commentRss/4855.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/reginfo/services/trackbacks/4855.html</trackback:ping><description><![CDATA[
		<p>在vckbase上看到有讨论这样一个问题：<br /><a href="http://blog.vckbase.com/jzhang/archive/2006/03/28/18807.html">http://blog.vckbase.com/jzhang/archive/2006/03/28/18807.html</a><br />CSDN的朋友参考了Python的实现源码给出有如下的解答：<br /><a href="http://blog.csdn.net/imjj/archive/2006/03/31/645163.aspx?Pending=true">http://blog.csdn.net/imjj/archive/2006/03/31/645163.aspx?Pending=true</a><br />性能上已经比Python好了，但是该解答毕竟是针对了具体的应用，比如定死了hash桶的大小之类的。<br /><br />我也凑热闹给了一个实现，只使用标准C++的一些算法解决此问题，性能上还是没有Python好，但是已经非常接近了：<br />D:\test\pytest&gt;python test.py<br />2006-03-31 14:59:19.348000<br />2006-03-31 14:59:22.963000</p>
		<p>D:\test\pytest&gt;cpptest<br />经过了4025.7888毫秒<br /><br />实现：<br />#include &lt;windows.h&gt;      //  just for time counting</p>
		<p>#include &lt;list&gt;<br />#include &lt;string&gt;<br />#include &lt;fstream&gt;<br />#include &lt;algorithm&gt;</p>
		<p>using namespace std;<br />int main( void )<br />{<br /> __int64 t1, t2;<br /> GetSystemTimeAsFileTime( (LPFILETIME)&amp;t1 );</p>
		<p> list&lt;string&gt; emails;<br /> ifstream infile("email2.txt");<br /> ofstream oufile("email_cpp.txt");<br /> copy( istream_iterator&lt;string&gt;(infile), istream_iterator&lt;string&gt;(), back_inserter(emails) );<br /> emails.unique();<br /> ofstream outfile( "email_cpp.txt" );<br /> copy( emails.begin(), emails.end(), ostream_iterator&lt;string&gt;(outfile,"\n") );</p>
		<p> GetSystemTimeAsFileTime( (LPFILETIME)&amp;t2 );<br /> printf( "经过了%I64d.%04I64d毫秒\n", (t2-t1)/10000, (t2-t1)%10000 );<br />}<br />对比的其他两个实现：<br />1、vector + sort + unique<br />2、set<br />最后还是我的这个实现好一点：）<br />PS：编译器用的是VC2005<br /><br />再PS，写了上面那个PS之后突然想看看VC2003怎么样，于是测试一下，惊人的发现：<br />D:\test\pytest&gt;cpptest2<br />经过了3234.6512毫秒<br />速度已经超越了Python<br />.^_^。满心欢喜结束这个讨论旅程</p>
<img src ="http://www.cppblog.com/reginfo/aggbug/4855.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/reginfo/" target="_blank">音乐虫子</a> 2006-03-31 15:28 <a href="http://www.cppblog.com/reginfo/archive/2006/03/31/4855.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>类型选择</title><link>http://www.cppblog.com/reginfo/archive/2006/02/12/3211.html</link><dc:creator>音乐虫子</dc:creator><author>音乐虫子</author><pubDate>Sun, 12 Feb 2006 03:27:00 GMT</pubDate><guid>http://www.cppblog.com/reginfo/archive/2006/02/12/3211.html</guid><wfw:comment>http://www.cppblog.com/reginfo/comments/3211.html</wfw:comment><comments>http://www.cppblog.com/reginfo/archive/2006/02/12/3211.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/reginfo/comments/commentRss/3211.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/reginfo/services/trackbacks/3211.html</trackback:ping><description><![CDATA[<P>// test7.cpp : Defines the entry point for the console application.<BR>//</P>
<P>#include "stdafx.h"</P>
<P>using namespace std;<BR>using namespace boost;</P>
<P>namespace <BR>{<BR>&nbsp;template&lt;typename T&gt; char checkSize(T*);<BR>&nbsp;template&lt;typename T&gt; long checkSize(...);<BR>}</P>
<P>template&lt;typename FIRST, typename SECOND&gt;<BR>struct SameType<BR>{<BR>&nbsp;enum{value = sizeof(char) == sizeof(checkSize&lt;FIRST&gt;((SECOND*)0)) };<BR>};</P>
<P><BR>class IFoo<BR>{<BR>public:<BR>&nbsp;virtual void bar() = 0;<BR>};</P>
<P>class Foo: public IFoo<BR>{<BR>public:<BR>&nbsp;virtual void bar(){ cout&lt;&lt;"bar()"&lt;&lt;endl; };<BR>};</P>
<P>template&lt;int&gt;<BR>class TypeSelect<BR>{<BR>public:<BR>&nbsp;template&lt;typename T&gt;<BR>&nbsp;&nbsp;TypeSelect(T&amp; r){}<BR>};</P>
<P>template&lt;&gt; class TypeSelect&lt;true&gt;<BR>{<BR>public:<BR>&nbsp;template&lt;typename T&gt;<BR>&nbsp;&nbsp;TypeSelect(T&amp; r)<BR>&nbsp;{<BR>&nbsp;&nbsp;r.bar();<BR>&nbsp;}&nbsp; <BR>};</P>
<P>template&lt;class T&gt; void func( T&amp; t )<BR>{<BR>&nbsp;(TypeSelect&lt;SameType&lt;IFoo, T&gt;::value&gt;(t));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>}</P>
<P>int main()<BR>{<BR>&nbsp;Foo x;<BR>&nbsp;int y;<BR>&nbsp;func(x);<BR>&nbsp;func(y);<BR>}<BR></P><img src ="http://www.cppblog.com/reginfo/aggbug/3211.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/reginfo/" target="_blank">音乐虫子</a> 2006-02-12 11:27 <a href="http://www.cppblog.com/reginfo/archive/2006/02/12/3211.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>boost::thread 中使用类成员作为线程入口</title><link>http://www.cppblog.com/reginfo/archive/2006/02/09/3152.html</link><dc:creator>音乐虫子</dc:creator><author>音乐虫子</author><pubDate>Thu, 09 Feb 2006 09:08:00 GMT</pubDate><guid>http://www.cppblog.com/reginfo/archive/2006/02/09/3152.html</guid><wfw:comment>http://www.cppblog.com/reginfo/comments/3152.html</wfw:comment><comments>http://www.cppblog.com/reginfo/archive/2006/02/09/3152.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/reginfo/comments/commentRss/3152.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/reginfo/services/trackbacks/3152.html</trackback:ping><description><![CDATA[just mark it:)<BR><BR>boost::thread trd1(boost::bind(&amp;TheClass::theMember), &amp;obj);<BR><img src ="http://www.cppblog.com/reginfo/aggbug/3152.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/reginfo/" target="_blank">音乐虫子</a> 2006-02-09 17:08 <a href="http://www.cppblog.com/reginfo/archive/2006/02/09/3152.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>