<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6486359669602069688</id><updated>2011-04-21T21:44:23.432-07:00</updated><category term='出行'/><category term='Flash'/><category term='MFC'/><category term='贴图'/><category term='妙言'/><category term='心情'/><category term='玩意'/><category term='STL'/><category term='Linux'/><category term='C/C++'/><category term='谷歌'/><category term='病态'/><category term='牛人强事'/><category term='转载'/><category term='浏览器'/><category term='百度'/><category term='闲言'/><category term='搜索引擎'/><category term='VC++'/><title type='text'>BlueSky</title><subtitle type='html'>人生的过程，不断学习、不断向前迈进的过程</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-6628835209016791701</id><published>2009-05-11T17:27:00.000-07:00</published><updated>2009-05-11T17:36:54.187-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='玩意'/><title type='text'>linux fetion无法启动</title><content type='html'>一大早又起来弄刚安装好的Ubuntu9.04，其实本来是想一直用Fedora的，可是无奈10对ATI显卡的支持真的是没得说。更新后老是无法进入xwindow，把显卡驱动卸后就没事了，可是总感觉到少了些什么。哈，好像有点扯远了，本来就是要说关于linux fetion的问题。&lt;br /&gt;我在安装ubuntu时home目录是保存原来的（单独挂载到一个盘），这样似乎会导致一个问题，安装好的fetion无法启动，在命令行里启动时出现这样的错误信息：linux-fetion: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory。OH，原来是少了文件呐，就马上去新立德里搜索libcurl.so.4装上，心想现在应该没问题吧，再次双击fetion，还是无法启动，出现：Failed to execute child process "linux-fetion"(Permission denied)。这到底是什么破问题啊，以前在fedora时也没有这么多问题啊，后来试下在命令行里用超级用户权限启动，咦，发现行了，原来问题出在文件权限这里。&lt;br /&gt;跑到/usr/bin目录里，把linux-fetion这个可执行文件的所属用户改变我登陆时的用户，然后再次启动，这次行了，可是什么图标都没有，看来那些配置文件也得全部改了。接着把/usr/share/libfetion这个目录的所属用户也全部改了，现在再次启动就OK了！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-6628835209016791701?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/6628835209016791701/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/05/linux-fetion.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/6628835209016791701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/6628835209016791701'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/05/linux-fetion.html' title='linux fetion无法启动'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-168088924311978365</id><published>2009-05-08T20:51:00.000-07:00</published><updated>2009-05-08T21:03:36.533-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='玩意'/><title type='text'>Linux下歌词新星</title><content type='html'>今天无意中在别人的博客上看到一个基于pyQt、dbus等技术的一个歌词显示工具，比起那些插件，lrcShow-X的启动方法略显麻烦，要先启动播放器，然后再在命令行里运行./lrcShow-X.py。目前其支持的播放器为：Amarok2、Audacious、Qmmp、 Exaile、Vlc和Quodlibet。其中audacious支持得最为完美。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_uFx0JcwU3gw/SgT_UykjgHI/AAAAAAAAAEs/qd1La5iaXIg/s1600-h/sendpix0.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 378px; height: 202px;" src="http://1.bp.blogspot.com/_uFx0JcwU3gw/SgT_UykjgHI/AAAAAAAAAEs/qd1La5iaXIg/s320/sendpix0.jpg" alt="" id="BLOGGER_PHOTO_ID_5333668591351070834" border="0" /&gt;&lt;/a&gt;不可否认其功能还是很强大，歌词编辑、调整和在视觉上的调整上都提供了支持。不过觉得歌词自动下载略显不足，经常得自己手动去搜，但总体来说lrcShow-X还是很不错的，值得试用。&lt;br /&gt;PS：&lt;br /&gt;链接：&lt;a target="_blank" href="http://www.sanfanling.cn/read.php?267"&gt;http://www.sanfanling.cn/read.php?267&lt;/a&gt;&lt;br /&gt;下载：&lt;a target="_blank" href="http://www.kde-apps.org/content/show.php?content=103055"&gt;http://www.kde-apps.org/content/show.php?content=103055&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-168088924311978365?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/168088924311978365/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/05/linux.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/168088924311978365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/168088924311978365'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/05/linux.html' title='Linux下歌词新星'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_uFx0JcwU3gw/SgT_UykjgHI/AAAAAAAAAEs/qd1La5iaXIg/s72-c/sendpix0.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-530963777680925382</id><published>2009-05-08T19:20:00.000-07:00</published><updated>2009-05-08T19:23:39.109-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><category scheme='http://www.blogger.com/atom/ns#' term='转载'/><title type='text'>“Hello World!”的N种写法（转载）</title><content type='html'>在初学一门编程语言的时候，写一个“Hello world!”程序是最常见的入门方法。通过写一个成功的“Hello world!”，可以实践这门语言最基本的语法特性，还可以带给自己成就感，真是一举两得。C/C++语言本身有很多特性，如果能够将这些技术分解出来变 成一个个的“Hello world!”，并且将这些技术点到为止，貌似也算是一件善事。这里，列举了10个“Hello world!”程序，大家雅俗共赏一下。&lt;br /&gt;&lt;br /&gt;1. 最经典的“Hello world!”&lt;br /&gt;&lt;br /&gt;“Hello world!”最经典的写法当然是直接用 printf 输出“Hello world!”这几个字符了。无论用C还是 C++，写起来都非常的简洁明了。这里把最常见的几个全部列在下面。&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    printf("Hello world!");                   // 教科书的写法&lt;br /&gt;    puts("Hello world!");                     // 我最喜欢的&lt;br /&gt;    puts("Hello" " " "world!");               // 拼接字符串&lt;br /&gt;    std::cout &lt;&lt; "Hello world!" &lt;&lt; std::endl; // C++风格的教科书写法&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;特别需要注意的是，在C/C++里，如果两个字符串之间除空白符以外没有任何东西，编译器会自动认为这两个字符串是连在一起的字符串。这样，如果一个字符串过长，可以用这种方法换行来写，既不浪费性能，又美观。&lt;br /&gt;&lt;br /&gt;2. 用宏写的“Hello world!”&lt;br /&gt;&lt;br /&gt;在C/C++里，宏是一个神奇的东西。特别是在C语言中，宏可以帮我们做一些“又脏又累”的活，包括拼接代码片断、隐藏繁琐的实现细节等等。其中特别有趣的是“#”的用法，它可以“提取”参数的名字，把它变成字符串。&lt;br /&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#define Say(sth) puts(#sth)&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    return Say(Hello world!);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;请注意，这个Hello world可是完全没有出现引号哦！&lt;br /&gt;&lt;br /&gt;3. 断章取义的“Hello world!”&lt;br /&gt;&lt;br /&gt;字符串是一种常量这当然毫无疑问，但是它的类型是什么，这就需要考虑一下了。使用C++的typeid就可以这个问题的答案，而且只要是符合C或C++标 准的编译器就应该是一样的结果。比如字符串“Hello world!”，它的类型就是 char const [13]。&lt;br /&gt;知道了这个，就可以写出以下的“Hello world!”：&lt;br /&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    return puts(&amp;amp;"Do not say: Hello world!"[12]);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;4. 退出时运行的“Hello world!”&lt;br /&gt;&lt;br /&gt;大家都知道 main 函数退出意味着程序结束，可是这并不完全正确，我们完全可以在 main 函数退出以后做很多事呢——比如说，输出“Hello world!”。这个功能依赖于C标准库中提供的函数 atexit()，调用这个函数并注册自己的回调函数就行。需要注意，这个函数可以调用多次，最后注册的函数最先执行。&lt;br /&gt;&lt;br /&gt;// 本文转自 C++Builder 研究 - http://www.ccrun.com/article.asp?i=999&amp;amp;d=v433i2&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;stdlib.h&gt;&lt;br /&gt;void say()&lt;br /&gt;{&lt;br /&gt;    printf("world!");&lt;br /&gt;}&lt;br /&gt;void sth()&lt;br /&gt;{&lt;br /&gt;    printf("Hello ");&lt;br /&gt;}&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    return atexit(say), atexit(sth);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;5. 读取自己的“Hello world!”&lt;br /&gt;&lt;br /&gt;C/C++的编译器提供了一些有用的内置宏，最常用的就是 __FILE__ 和 __LINE__ 了。其中，__FILE__ 代表当前的源文件的文件名，嗯，对了，如果我们让这个程序读取自己的源文件，不就可以做一个很有意思的“Hello world!”了么？&lt;br /&gt;&lt;br /&gt;// Hello world!&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;#include &lt;fstream&gt;&lt;br /&gt;#include &lt;string&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    std::ifstream ifs(__FILE__);&lt;br /&gt;    std::string say, some, word;&lt;br /&gt;    ifs &gt;&gt; say &gt;&gt; some &gt;&gt; word;&lt;br /&gt;    std::cout &lt;&lt; some &lt;&lt; " " &lt;&lt; word;&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;6. 话分两头的“Hello world!”&lt;br /&gt;&lt;br /&gt;有了C++的类，我们就可以光明正大的在 main 函数执行之前和之后做感兴趣的事情了。我们可以声明一个全局的类的实例，这样，在 main 函数执行之前会调用这个类的构造函数，结束之后则会调用析构函数。&lt;br /&gt;&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;class say&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;    say()&lt;br /&gt;    {&lt;br /&gt;        std::cout &lt;&lt; "Hell";&lt;br /&gt;    }&lt;br /&gt;    ~say()&lt;br /&gt;    {&lt;br /&gt;        std::cout &lt;&lt; "world!";&lt;br /&gt;    }&lt;br /&gt;}hello;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    std::cout &lt;&lt; "o ";&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;7. 传入模板的“Hello world!”&lt;br /&gt;&lt;br /&gt;C++的模板功能极为强大，可以说是C++里面最艰深、最经典、最时尚的部分。一个“Hello world!”当然无法使用很多很高级的模板技巧，我也不想只使用模板特化这样无阻挂齿的小技巧，嗯，那就来演示一个比较罕见的用法吧。&lt;br /&gt;&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;template &lt;char&gt;&lt;br /&gt;class say&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;    void operator () ()&lt;br /&gt;    {&lt;br /&gt;        std::cout &lt;&lt; words;&lt;br /&gt;    }&lt;br /&gt;};&lt;br /&gt;extern char hello[] = "Hello world!";&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    return say&lt;hello&gt;()(), 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;请注意，这个 extern 是十分必要的，只有加上了 extern，这个指针才是一个编译器间可以确定的值，也才可以参与模板运算。还有，hello 必须为数组类型，而不能为 char*，这个道理和加 extern 是一样的。&lt;br /&gt;此外，这里还演示了 functor 的用法，嗯，关于它的优点就不在这里多说了，反正是与原生指针相比有很多好处就是了。&lt;br /&gt;&lt;br /&gt;8. 调用私有函数的“Hello world!”&lt;br /&gt;&lt;br /&gt;我们知道，C++类的私有函数是不能被外界访问的，比如说 main 函数里面，它绝对不能访问类的私有函数，除非把它设为类的友元函数。不过我们还是可以用一些比较奇怪的方法访问类的私有函数——当然，这个私有函数必须满足一个条件：它是虚函数。&lt;br /&gt;这里就涉及到一个问题，指向虚函数的虚表放在哪里？对于 VS.Net 2003 而言，虚表是类的第一个成员，虚函数指针按照函数声明的顺序放在虚表里面。当然，这个说法并不严谨，更细节的东西还是去看看那本“成人高钙奶粉”吧，它会给出最权威的解答。&lt;br /&gt;这里是一个很有意思的例子：&lt;br /&gt;&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;#include &lt;cstddef&gt;&lt;br /&gt;class secret&lt;br /&gt;{&lt;br /&gt;private:&lt;br /&gt;    virtual void say()&lt;br /&gt;    {&lt;br /&gt;        std::cout &lt;&lt; "Hello world!";&lt;br /&gt;    }&lt;br /&gt;};&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    secret word;&lt;br /&gt;    (reinterpret_cast&lt;void&gt;(**(intptr_t**)(&amp;amp;word)))();&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;9. 最暴力的“Hello world!”&lt;br /&gt;&lt;br /&gt;最暴力的调用函数的方法是：直接修改函数的返回地址，让这个地址指向我们想要调用的函数。这也就是缓冲区溢出漏洞的应用方法了，不过里面还涉及到很多问 题，在这里就不一一列举，想要了解的话，还是去 Google 吧。这里只演示一个可以在 VS.Net 2003 下可以用的“Hello world!”。&lt;br /&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;stdlib.h&gt;&lt;br /&gt;#include &lt;stddef.h&gt;&lt;br /&gt;void say()&lt;br /&gt;{&lt;br /&gt;    puts("Hello world!");&lt;br /&gt;    exit(0);&lt;br /&gt;}&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    volatile intptr_t a = 0;&lt;br /&gt;    volatile intptr_t * p = &amp;a;&lt;br /&gt;    *(p + 2) = (intptr_t)say;&lt;br /&gt;    *(p + 3) = (intptr_t)say;&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;10. 外星人说的“Hello world!”&lt;br /&gt;&lt;br /&gt;好了，这个“Hello world!”是最匪夷所思的一个了！不过它并没有涉及任何复杂的C/C++语言特性，只是看起来有点酷。你能看懂外星人在说什么不？&lt;br /&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;void alien_say(char * p)&lt;br /&gt;{&lt;br /&gt;    while (putchar(*(p += *(p + 1) - *p)));&lt;br /&gt;}&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    return alien_say("BETHO! Altec oh liryom(a loadjudas!) dowd."), 0;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-530963777680925382?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/530963777680925382/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/05/hello-worldn.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/530963777680925382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/530963777680925382'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/05/hello-worldn.html' title='“Hello World!”的N种写法（转载）'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-1250091055669140213</id><published>2009-05-06T23:54:00.000-07:00</published><updated>2009-05-07T00:09:10.795-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='妙言'/><title type='text'>用一句话概括四大名著</title><content type='html'>&lt;span style="color:#000000;"&gt;&lt;strong&gt;最点题的答案：&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;西游：疯狂的猴子&lt;br /&gt;红楼：疯狂的石头&lt;br /&gt;水浒：疯狂的好汉&lt;br /&gt;三国：疯狂的战争&lt;br /&gt;&lt;strong&gt;最时尚的答案：&lt;/strong&gt;&lt;br /&gt;西游：三藏团队的艺术化管理&lt;br /&gt;红楼：败家子是怎样炼成的&lt;br /&gt;水浒：兄弟连&lt;br /&gt;三国：是金子总会发光的－－记农村优秀青年孔明&lt;br /&gt;&lt;strong&gt;最社会的答案：&lt;/strong&gt;&lt;br /&gt;西游：俺们天上有人&lt;br /&gt;红楼：俺们朝廷有人&lt;br /&gt;水浒：俺们江湖有人&lt;br /&gt;三国：俺们有的是人&lt;br /&gt;&lt;strong&gt;最批判的答案：&lt;/strong&gt;&lt;br /&gt;西游：公款旅游&lt;br /&gt;红楼：公款追MM&lt;br /&gt;水浒：公款吃喝&lt;br /&gt;三国：为了公款旅游、公款追MM、公款吃喝而奋斗&lt;br /&gt;&lt;strong&gt;最畅销的答案：&lt;/strong&gt;&lt;br /&gt;西游：《论旅游开发－－唐朝学者记录沿途奇遇》&lt;br /&gt;红楼：《论大观园开发－－美女公关口述公司内幕》&lt;br /&gt;水浒：《论梁山开发－－108人旅游团的悲惨遭遇》&lt;br /&gt;三国：《论中原开发－－三大公司争夺开发权内幕》&lt;br /&gt;&lt;strong&gt;最直接的答案：&lt;/strong&gt;&lt;br /&gt;西游：一个人和三个怪物的故事&lt;br /&gt;红楼：一个男人和一群女人的故事&lt;br /&gt;水浒：一群男人和三个女人的故事&lt;br /&gt;三国：三个男人和战争的故事&lt;br /&gt;&lt;strong&gt;最本质的答案：&lt;/strong&gt;&lt;br /&gt;西游：猴子被人驯服&lt;br /&gt;红楼：男人被女人驯服&lt;br /&gt;水浒：好汉被官府驯服&lt;br /&gt;三国：和平被战争驯服&lt;br /&gt;&lt;strong&gt;最“有戏”的答案：&lt;/strong&gt;&lt;br /&gt;西游：呔，妖怪！&lt;br /&gt;红楼：嗨，妹妹！&lt;br /&gt;水浒：嘿，老大！&lt;br /&gt;三国：是，将军！&lt;br /&gt;&lt;strong&gt;最实用的答案：&lt;/strong&gt;&lt;br /&gt;西游：真经的取法&lt;br /&gt;红楼：爱情的谈法&lt;br /&gt;水浒：牛肉的吃法&lt;br /&gt;三国：战争的打法&lt;br /&gt;&lt;strong&gt;最“影迷”的答案：&lt;/strong&gt;&lt;br /&gt;西游：动物王国历险记&lt;br /&gt;红楼：趟过女人河的男人&lt;br /&gt;水浒：我在黑社会的日子&lt;br /&gt;三国：古惑仔之胜者为王&lt;br /&gt;&lt;strong&gt;最“歌迷”的答案：&lt;/strong&gt;&lt;br /&gt;西游：人在旅途&lt;br /&gt;红楼：你究竟有几个好妹妹&lt;br /&gt;水浒：其实不想走&lt;br /&gt;三国：英雄泪&lt;br /&gt;&lt;strong&gt;最无奈的答案：&lt;/strong&gt;&lt;br /&gt;西游：神仙靠不住&lt;br /&gt;红楼：亲戚靠不住&lt;br /&gt;水浒：老大靠不住&lt;br /&gt;三国：盟友靠不住&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-1250091055669140213?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/1250091055669140213/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/05/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/1250091055669140213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/1250091055669140213'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/05/blog-post.html' title='用一句话概括四大名著'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-4487707770565702335</id><published>2009-04-28T04:20:00.000-07:00</published><updated>2009-04-28T05:16:12.766-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='闲言'/><category scheme='http://www.blogger.com/atom/ns#' term='搜索引擎'/><category scheme='http://www.blogger.com/atom/ns#' term='谷歌'/><category scheme='http://www.blogger.com/atom/ns#' term='百度'/><title type='text'>百度与Google</title><content type='html'>今天在Cnbeta上得知百度MP3搜索流量收入比例双双下降，并不意外吧，谷歌终于说服总部在中国使用了音乐搜索，很多人肯定会转向的。与百度不同，谷歌自己掏钱向巨鲸网购买了版权。&lt;br /&gt;自从08年开始，百度被爆出了许多负面新闻，百度的企业形象似乎一下子跌到了谷底。也许笑的人很多，但是作为百度支持者的话，可能会一下子愣了，这真的是自己崇拜的公司的所作所为吗？&lt;br /&gt;说实话，我并不排斥百度，在进入大学以前，我常用的搜索引擎是百度，基本上不碰谷歌，因为在那时候百度基本上满足了我的需求，让我找到要找的资料，让我能听想要听的歌曲。但是现在正好倒过来，搜索资料用谷歌，找歌用百度，因为慢慢地发现，用百度找比较专业性的资料，根本就没有谷歌找到的那么多，那么准确。&lt;br /&gt;一直以来，我都认为百度是家很不错的公司，认为李彦宏是一个很优秀的中国人。虽说搜索方面没有谷歌那么强大，但百度基本上满足了中国很大一部分网民，百度在中文的理解上，我认为还是比谷歌好的，百度能做到今天这个地步，没有一定的能力是不可能的。&lt;br /&gt;这些天开始关注网上的人对百度的看法，似乎仇视百度的比撑它的多得多，很多关于百度的帖子，基本上都是在谩骂它吧，呵呵，素质。&lt;br /&gt;首先要提的是竞价排名。其实本身来说竞价排名并不是说不好，照李的看法来说，确实能提高用户体验。但这有一个前提：要保证推广信息的正确性。很多人认为竞价排名就意味着百度的搜索信息不公正，有很大一部分是人工干预。人工干预在一定程度上其实能提高用户体验，假如说竞价的企业都是些合法企业，而且推广信息刚好是搜索者要找的，这时候三方得益了。要是进行竞价的企业有一部分是虚假广告，搜索者不好运正好找到这个并信以为真，那想想被欺骗后的心情如何？肯定会把百度臭骂一顿。所以呢，百度要进行竞价排名，首先就要保证百分之九十九以上的推广信息都是合法的。可是百度在推广信息的把关上没有想像得那么好，虚假信息还是太多，而且竞价排名被百度发挥出了最大的商业利益，这不是什么好事，百度赚的钱多了，可是在网民中的形象却会大打折扣了，也许什么时候百度能像谷歌一样做到左边的搜索信息不会掺合广告，那百度才是真正意义上的中国的“谷歌”吧。&lt;br /&gt;貌似民间有一种说法，百度曾经搜集过很多对Google不利的信息向政府反应，在一定程度上打击到Google，并导致它在中国在一段时期内被封，现在Google在中国提供的服务也是时断时续的，有相当一部分功能是不能够使用的。这究竟是不是真的，也许无从考证。Google在中国被封，很多人第一个想到的就是百度，毕竟它被封百度是最大的获益者。但是我不认同这种说法，因为百度没必要。假如百度真的是靠这样来起家的，我想它撑不了多久，很快就会垮台的。但是说法众多，谁也说服不了谁，事实是怎么样的，也许真的成为了历史。&lt;br /&gt;网上很多站长都说自己曾经接过百度要其竞价排名的电话，拒绝后自己的网站来自百度的流量就越来越少，甚至被百度K站。至于被K站的是不是都是因为拒绝竞价排名就不知道了。但可以肯定的是有很大一部分是因为SEO过度或是被认定为垃圾信息。现在很多人搞网站，随便在别人的网站上复制一部分就成为自己网站的内容了，不相信的话你现在用Google随便搜索一些东西，看看重复率是不是很高？Google搜到的东西确实多，可是有很大一部分都是重复的，你点开很多个网页，发现竟然都是同一篇文章，呵呵，个个都说是原创的。这并不是Google的错，搜英文就不会这样，中国的互联网垃圾信息还是太多了，很多人都是Copy来复制去的。这样的话肯定被K啦，百度在这方面还是处理得还严的。还有一个，百度对一些政治敏感性的东西还是封得比较厉害的，Google相对来说比较自由，我相信那时候被封很大部分是因为这个吧，现在它也学乖了。这时候也许有人说百度就是政府的什么什么了，这很难听，你活在这片土地上，有些事还是得乖乖认了的。&lt;br /&gt;很多人都说百度没创新，就会跟着谷歌跑，谷歌出什么，百度就跟着出什么。但我要说的是百度并不像他们说的那样，觉得这样说本身就不公平，百度很多东西都是谷歌没有的，就像帖吧、国学搜索等。百度很多东西做得还是很不错的，很多人说百度没创新是因为他们只挑一些片面的来说，对于它的优点却完全无视。最近百度推出的老年搜索，个人认为是很不错的，字体加大，搜索更加准确，更好的是去除了广告，保持了一片净土。但很多人对此确是冷嘲热讽，也许很多人都认定百度做的就是垃圾吧，更有人扬言说百度的这个东东他只要用DW十分钟就搞定了，百度的工程师都太逊了。我想他只是看了那个页面就放出了这话吧，很多人根本就不屑去了解这个东西。貌似很多老年人都说不错的，这时候年轻人却跑出来踩了，这不关他们事吧，呵呵。&lt;br /&gt;其实无论百度，还是谷歌，都是很不错的。但是百度的一些做法，着实伤害了很多人的心。百度这几年在商业利益上的追逐，让它丢失了一部分的企业责任。李自己也承认公司管理高层的流失，让百度的管理陷入了一定的混乱当中。百度想要重新获得网民的认可，就一定要负起自己的责任，百度做到今天，社会责任是很大的。也许公司成长到一定程度，都会出现这样那样的问题吧。像华为，当年也是饱受非议的。希望百度能像华为一样，认识到自己的缺点在那里并加以改正，不怕有错，就怕知道后仍死撑着不去改，那也许就真的会在网民的视线中淡出吧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-4487707770565702335?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/4487707770565702335/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/04/google.html#comment-form' title='3 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/4487707770565702335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/4487707770565702335'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/04/google.html' title='百度与Google'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-3526429666462341060</id><published>2009-04-19T02:23:00.001-07:00</published><updated>2009-04-19T02:32:43.868-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='贴图'/><title type='text'>新浪之贴图</title><content type='html'>&lt;div align="left"&gt;下午跟着师姐去到新浪那边开会，主要是为了讨论下关于三人篮球赛的执行，顺便留意了一下新浪那边的办公环境，感觉还是比较自由、随意的，不废话了，看下贴图吧。&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_uFx0JcwU3gw/SeruQb3sDYI/AAAAAAAAAD0/-J2GXucHuX0/s1600-h/20090419396.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5326331475445681538" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_uFx0JcwU3gw/SeruQb3sDYI/AAAAAAAAAD0/-J2GXucHuX0/s320/20090419396.jpg" border="0" /&gt; &lt;p align="center"&gt;&lt;/a&gt;从窗口看出去，这里是39楼哦&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div align="center"&gt;&lt;a href="http://3.bp.blogspot.com/_uFx0JcwU3gw/SeruQK0awiI/AAAAAAAAADs/sxoGaQknC4k/s1600-h/20090419395.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5326331470868562466" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_uFx0JcwU3gw/SeruQK0awiI/AAAAAAAAADs/sxoGaQknC4k/s320/20090419395.jpg" border="0" /&gt;&lt;/a&gt; 应该是某个女的的办公桌，超乱&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_uFx0JcwU3gw/SeruQEtfoaI/AAAAAAAAADk/K8jcblU5nzM/s1600-h/20090419394.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5326331469228908962" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_uFx0JcwU3gw/SeruQEtfoaI/AAAAAAAAADk/K8jcblU5nzM/s320/20090419394.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;会议厅一角&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_uFx0JcwU3gw/SeruPzfFtYI/AAAAAAAAADc/lZJGM1wSBlc/s1600-h/20090419393.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5326331464605087106" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_uFx0JcwU3gw/SeruPzfFtYI/AAAAAAAAADc/lZJGM1wSBlc/s320/20090419393.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;会议厅一角，可以看到新浪公司的宗旨&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_uFx0JcwU3gw/SeruPrU7zHI/AAAAAAAAADU/i-4YD4U-kCw/s1600-h/20090419392.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5326331462415010930" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_uFx0JcwU3gw/SeruPrU7zHI/AAAAAAAAADU/i-4YD4U-kCw/s320/20090419392.jpg" border="0" /&gt;&lt;/a&gt; 办公的地方 &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-3526429666462341060?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/3526429666462341060/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/04/blog-post_19.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/3526429666462341060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/3526429666462341060'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/04/blog-post_19.html' title='新浪之贴图'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_uFx0JcwU3gw/SeruQb3sDYI/AAAAAAAAAD0/-J2GXucHuX0/s72-c/20090419396.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-1710404720577710976</id><published>2009-04-11T23:12:00.000-07:00</published><updated>2009-04-11T23:53:47.884-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MFC'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='VC++'/><title type='text'>在VC中使用Flash来做界面</title><content type='html'>在VC中想搞了一个漂亮的界面比较难，但如果利用Flash的话，问题就简单得多啦，Flash可以跟VC程序实现通信，这样就可以在VC程序中截取消息并引发相应的动作了。&lt;br /&gt;&lt;br /&gt;  首先当然就是要利用MFC AppWizard建一个对话框窗口，然后在主菜单里选择“工程-&gt;添加工程-&gt;components and controls”菜单选项，这时会弹出一个components and controls gallery文件选择对话框，里面有两个文件夹，一个是registered activex controls，一个是visual c＋＋ components。选择第一文件夹后会出现一系列系统上已注册过的activex控件。这时候要检查里面是否有shockwave flash object这个控件，没有的话就得自己去下载一个了，点击insert将它插入工程。因为在vc中插入工程的控件要通过一个类来操作，所以这时vc会提示你为这个控件指定一个类名，可以使用默认的类名就行了。插入后vc会自动把这个类加入工程里面。这时候就可以利用这个生成的类定义一个对象。插入shockwave flash object控件后，你会发现在对话框编辑器那里多出了一个图标，和使用BUTTON、EDIT等其它windows控件一样，把它拉到对话框上，让它跟刚刚定义的那个对象（是插入控件后生成的类类型）关联，不知道怎么利用VC关联的话就在AppWizard生成的对话框类中的DoDataExchange函数插入DDX_Control(pDX, ID号, 定义的对象名)。&lt;br /&gt;&lt;br /&gt;  这时候就可以使用成员函数LoadMovie和Play来导入并播放动画了，这里我们假设定义的对象名为Flash。Flashr.LoadMovie(0, strMovieUrl);该函数用来将动画导入程序中，strMovieUrl为要播放的flash路径，要用绝对路径。 Flash.Play();调用该函数开始播放动画。在初始化对话框的函数（OnInitDialog）里面加入这两个函数调用即可。这时候要记得在继承于WinApp的类的InitInstanse函数中调用AfxEnableControlContainer()这个函数，这个函数的作用是你的应用程序成为ActiveX控件包容器。假如你不加进去的话，程序就会运行不了。&lt;br /&gt;&lt;br /&gt;  假如现在你一切都搞定了，运行一下程序，你会发现Flash已经嵌入到你的程序当中了，但由于是在对话框中，现在没有办法改变它的大小，更糟糕的是，右击后竟然有Flash那个弹出菜单。&lt;br /&gt;  我觉得把程序设定为全屏运行是最好的，因为Flash外面有个窗框严重影响了美观，所以可以在对话框初化函数中加入以下代码：&lt;br /&gt;&lt;br /&gt;  int cx, cy;&lt;br /&gt;  HDC dc = ::GetDC(NULL);&lt;br /&gt;  cx = GetDeviceCaps(dc,HORZRES) +&lt;br /&gt;      GetSystemMetrics(SM_CXBORDER);&lt;br /&gt;  cy = GetDeviceCaps(dc,VERTRES) +&lt;br /&gt;      GetSystemMetrics(SM_CYBORDER);&lt;br /&gt;  ::ReleaseDC(0,dc);&lt;br /&gt;&lt;br /&gt;  //去除标题和边框&lt;br /&gt;  SetWindowLong(m_hWnd, GWL_STYLE,&lt;br /&gt;      GetWindowLong(m_hWnd, GWL_STYLE) &amp;amp;&lt;br /&gt;  (~(WS_CAPTION | WS_BORDER)));&lt;br /&gt;&lt;br /&gt;  // 置对话框为最顶端并扩充到整个屏幕&lt;br /&gt;  ::SetWindowPos(m_hWnd, HWND_TOPMOST,&lt;br /&gt;      -(GetSystemMetrics(SM_CXBORDER)+1),&lt;br /&gt;      -(GetSystemMetrics(SM_CYBORDER)+1),&lt;br /&gt;      cx+1,cy+1, SWP_NOZORDER);&lt;br /&gt;&lt;br /&gt;  再运行一下，你是不是发现已经可以全屏了，那个讨厌的窗框也不见了。问题可能又有了，你有没发现Flash并没有相应放大，天呐，怎么办，这样的话全屏有毛用啊？呵呵，不用怕，这时候就要利用ClassWizard在对话框类中重定义OnSize这个虚函数了，在里面加入  ：&lt;br /&gt;&lt;br /&gt;if(m_FlashPlayer.GetSafeHwnd())&lt;br /&gt;  {&lt;br /&gt;      m_FlashPlayer.MoveWindow(0, 0, cx, cy);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  现在问题完美解决了，Oh No，还有一个右键问题。其实问题也不大，也就是在刚刚插入控件时生成的那个类当中截取右键消息，然后处理函数什么都不做就行了。这时要做的就是捕获WM_RBUTTONDOWN消息，再让OnRButtonDown(UINT nFlags, CPoint point)的函数体置空就行了。&lt;br /&gt;&lt;br /&gt;  至此在界面上应该没有什么问题了（漂不漂亮就要看你设计的Flash），下面介绍在flash动画和自己的程序中传递消息进行交互。&lt;br /&gt;&lt;br /&gt;  把flash嵌入自己的程序后，用户在flash动画上面操作，想知道用户进行了什么操作，就得让flash动画来告诉我们了。做过flash的人应该知 道flash的动作脚本语言:Action Script。里面有个命令叫FSCommand(command,args);我们就是要通过这个命令向外部发送消息的。这个命令有两个参数，都是字符 串，你可以在flash脚本中指定任意的字符串。比如用户按下flash动画的一个按钮就发送FSCommand("bt","bt1")这样一个消息， 按下另一个按钮发送FSCommand("bt","bt2")，而我们的程序收到FSCommand消息后就对通过两个参数的不同字符串来判断用户按下 的是哪个按钮。&lt;br /&gt;&lt;br /&gt;  原理就是这样子的，要实现的话就得在flash动画中使用FSCommand发送消息，在我们的程序接收和处理FSCommand消息了。 flash部分的就不讲了。那我们的程序如何才能接收这个消息呢？前面我们讲到，shockwave flash object插入我们的程序后就可以象一个普通的windows控件那样使用它了。要让它接收并处理这个消息当然是使用MFC的类向导进行消息映射了。做 法如下：&lt;p&gt;　　1、添加消息处理函数。 在主菜单中选择“查看-&gt;类向导”，在弹出的对话框中选择消息映射，在左边的列表框中选择我们刚插入程序的shockwave flash object控件id，右边选择FSCommand， 点击AddFunction，这样就添加了一个FSCommand消息处理函数了。它的形式大概是这样子的：&lt;/p&gt;&lt;p&gt;　　void CPlayFlashDlg::OnFSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args) ;函数有两个参数，就是flash的Action SCript中FSCommand语句中的两个参数。其实并不一定两个参数都用到，flash脚本中可以就使用一个参数，这样这边的函数就只要对第一个参 数进行处理就行了。&lt;/p&gt;&lt;p&gt;&lt;clk&gt; 2、编写消息处理代码。 在刚添加的FSCommand消息处理函数中，对两个参数进行处理。其实就是做字符串比较的&lt;nobr id="clickeyekey0" style="border-bottom: 1px dotted rgb(102, 0, 255); text-decoration: underline; color: rgb(102, 0, 255); background-color: transparent;" onclick="'kwC(event,0," oncontextmenu="return false" onmouseover="kwE(event,0, this)" onmouseout="kwL(event,this)" onmousemove="kwM(0)"&gt;&lt;/nobr&gt;操作，根据是什么字符串来判断用户进行了什么操作。&lt;/clk&gt;&lt;/p&gt;&lt;p&gt;&lt;clk&gt;    其实还可以利用GetVariable获取Flash传过来的值和利用SetVariable向Flash传值，具体的这里就不介绍了，有兴趣的可以自己去网上查看这两个函数的具体用法。&lt;br /&gt;&lt;/clk&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-1710404720577710976?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/1710404720577710976/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/04/vcflash.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/1710404720577710976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/1710404720577710976'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/04/vcflash.html' title='在VC中使用Flash来做界面'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-6182223010763755101</id><published>2009-04-06T04:35:00.000-07:00</published><updated>2009-04-06T04:45:03.458-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='贴图'/><category scheme='http://www.blogger.com/atom/ns#' term='心情'/><title type='text'>广商之行之贴图</title><content type='html'>　&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_uFx0JcwU3gw/SdnrA2pF2II/AAAAAAAAADM/QIaD2mWXKas/s1600-h/20090405455.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_uFx0JcwU3gw/SdnrA2pF2II/AAAAAAAAADM/QIaD2mWXKas/s320/20090405455.jpg" alt="" id="BLOGGER_PHOTO_ID_5321542834615343234" border="0" /&gt;&lt;/a&gt;　　　　　　　　　　　　　　　　　　广商门前留念&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_uFx0JcwU3gw/SdnqXUMf-fI/AAAAAAAAAC4/pXvLMAVHFZ4/s1600-h/20090405451.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_uFx0JcwU3gw/SdnqXUMf-fI/AAAAAAAAAC4/pXvLMAVHFZ4/s320/20090405451.jpg" alt="" id="BLOGGER_PHOTO_ID_5321542120993978866" border="0" /&gt;&lt;/a&gt;　　　　　　　　　　　　　　　　　　广商门前留念&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_uFx0JcwU3gw/SdnqXIC25uI/AAAAAAAAACw/A7dTV5IbnVQ/s1600-h/20090405447.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_uFx0JcwU3gw/SdnqXIC25uI/AAAAAAAAACw/A7dTV5IbnVQ/s320/20090405447.jpg" alt="" id="BLOGGER_PHOTO_ID_5321542117732312802" border="0" /&gt;&lt;/a&gt;　　　　　　　　　　　　　　　　　　午饭前讨论&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_uFx0JcwU3gw/SdnqXJFv3tI/AAAAAAAAACo/QB1FiHQou-Y/s1600-h/20090404435.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_uFx0JcwU3gw/SdnqXJFv3tI/AAAAAAAAACo/QB1FiHQou-Y/s320/20090404435.jpg" alt="" id="BLOGGER_PHOTO_ID_5321542118012870354" border="0" /&gt;&lt;/a&gt;　　　　　　　　　　　　　　　　　　　　如姐啦&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_uFx0JcwU3gw/SdnpeHmjwNI/AAAAAAAAACg/aXzVJy2IIao/s1600-h/%E5%9B%BE%E5%83%8F007.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 256px;" src="http://3.bp.blogspot.com/_uFx0JcwU3gw/SdnpeHmjwNI/AAAAAAAAACg/aXzVJy2IIao/s320/%E5%9B%BE%E5%83%8F007.jpg" alt="" id="BLOGGER_PHOTO_ID_5321541138361073874" border="0" /&gt;&lt;/a&gt;                                                       　　　　　　　　　　　　　　　　　　如姐“偷拍”&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_uFx0JcwU3gw/Sdnpd7xcBEI/AAAAAAAAACY/aWXp-20E2Pc/s1600-h/%E5%9B%BE%E5%83%8F006.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 256px;" src="http://3.bp.blogspot.com/_uFx0JcwU3gw/Sdnpd7xcBEI/AAAAAAAAACY/aWXp-20E2Pc/s320/%E5%9B%BE%E5%83%8F006.jpg" alt="" id="BLOGGER_PHOTO_ID_5321541135185478722" border="0" /&gt;&lt;/a&gt;　　　　　　　　　　　　　　　　夜晚的广商情人湖&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-6182223010763755101?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/6182223010763755101/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/04/blog-post_06.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/6182223010763755101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/6182223010763755101'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/04/blog-post_06.html' title='广商之行之贴图'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_uFx0JcwU3gw/SdnrA2pF2II/AAAAAAAAADM/QIaD2mWXKas/s72-c/20090405455.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-4042435906536914615</id><published>2009-04-06T03:42:00.000-07:00</published><updated>2009-04-06T04:21:39.564-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='闲言'/><category scheme='http://www.blogger.com/atom/ns#' term='出行'/><category scheme='http://www.blogger.com/atom/ns#' term='心情'/><title type='text'>广商之“想”</title><content type='html'>　　刚刚冲完凉，似乎还在回味逝去的三天。又一次去到广商，总有那么一种淡淡的感觉，有时候看到她们一群女生在大声耍闹，我会情不自禁地无语。呵呵，但是也许这是我最看重的几个女性朋友了，因为从来没有人能给我那种感觉。&lt;br /&gt;　　说实话，广商那里真的是比较无聊的，一整天就是在那逛校园，那天我还对友鹏说：“我们现在应该先回去冲凉吃饭，然后晚上再逛校园，不然晚上的节目就没有了！”佩如宿舍一个女的更是对佩如说：“他老是往这里跑，肯定是对你们三个其中一个有意思。”今天在回广州的车上把这句话对嘉英说了，嘉英说得更对：“其实她说错了，她应该说你老是去我们这边肯定对我们三个都有意思，哈哈。”呵呵，也许是真的。&lt;br /&gt;　　其实最开心的是见到了很久没见面的朋友。第一次我们一起去逛图书馆，这也许是我大学以来做的最有聊的事了；第一次我们一起看电影；第一次我们一起打篮球，可我就是老是进不了球，让美玲和嘉英狂鄙视。&lt;br /&gt;　　有点遗憾就是友鹏有事住了一晚就匆匆回南海了；嘉英忙事没跟我们一起太久；霏霏更绝了，丢下我们她们三个自己去逛衣服，还把钱当垃圾扔，你说丢下我们就算了嘛，竟然不把钱给我们反而当垃圾扔掉，像话吗？&lt;br /&gt;　　最不好意思的就是又让之炎大出血了，明明是要坑佩如，怎么每次就都坑成之炎了，真是郁闷！&lt;br /&gt;　　最不爽的就是美玲跟嘉英竟然没来送我，真是不给我面子，下次要乖点。&lt;br /&gt;　　最最最要表扬的就是如姐了，又无怨无悔陪了我三天，鼓掌三十秒！&lt;br /&gt;　　有时候在想，我们还有多少日子能够像现在一样，大家凑在一起，什么都不用想，只是简简单单在一起聊天、玩。也许不久后我们会长大，会走出这个时光，然后大家都忙着做自己的事，什么都无瑕去想，只能偶尔怀念一下大学的这个时候。觉得那次友鹏说得很对，“虽说大学朋友也很多，可是永远没有我们这些人在一起时的那种感觉”。真的，没有，那种感觉，很微妙。&lt;br /&gt;　　这也许就是人生一段很美丽的记忆，会像对嘉英说的“我会永远记住我们一起打球”一样，也会永远记住这一段时光。&lt;br /&gt;　　他们都说来本部后再一起过来找我，算不算约定呢，呵呵？要过来哦，大家！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-4042435906536914615?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/4042435906536914615/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/04/blog-post.html#comment-form' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/4042435906536914615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/4042435906536914615'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/04/blog-post.html' title='广商之“想”'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-4345776249246598606</id><published>2009-04-03T05:50:00.000-07:00</published><updated>2009-04-03T06:01:56.326-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='搜索引擎'/><category scheme='http://www.blogger.com/atom/ns#' term='玩意'/><title type='text'>可视化搜索引擎Searchme</title><content type='html'>今天发现了一个与Google、百度之类的文字搜索引擎不同的可视化搜索引擎，叫Searchme。Searchme看起来确实相当酷，它似乎是Google和苹果iTunes服务三维滚动界面的一个混合体，更大的不同是搜索界面的不同，它不是简单地将搜索到的链接地址和简介呈现在页面上。而是将搜索结果全部以整个页面的视图形式呈现出来，在一个界面中滚动翻转，让用户直观选择。只要在搜索框内输入一个关键词，就会得到一大堆相关的页面。不过搜索视频的时候来自YouTube的视频似乎总看不了，我试了几个都没有办法播放，可能是被墙了的关系吧，最近YouTube似乎比较那个！而且由于是外国的服务器，也很慢，但最大的优点是不止酷，而且可以搜索出一些平时搜不到的东西。下面是Searchme的页面截图，有兴趣的可以点击进去看看。&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.searchme.com/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 186px;" src="http://4.bp.blogspot.com/_uFx0JcwU3gw/SdYIVY_KMvI/AAAAAAAAABA/tdsNtquPL-w/s320/searchme.jpg" alt="" id="BLOGGER_PHOTO_ID_5320449173362455282" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-4345776249246598606?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/4345776249246598606/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/04/searchme.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/4345776249246598606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/4345776249246598606'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/04/searchme.html' title='可视化搜索引擎Searchme'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_uFx0JcwU3gw/SdYIVY_KMvI/AAAAAAAAABA/tdsNtquPL-w/s72-c/searchme.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-4872500975820084908</id><published>2009-03-28T20:51:00.000-07:00</published><updated>2009-03-28T21:20:27.478-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='妙言'/><category scheme='http://www.blogger.com/atom/ns#' term='病态'/><title type='text'>郎咸平:中国企业存在病态心理</title><content type='html'>下面的言语都是从郎咸平教授的博文《中国企业存在病态心理》摘录的妙语，看了后挺有感觉的：&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;“中国文化博大精深是没有错的，这个没有人会有意见。在这种博大精深的外衣之下，我们谈谈小问题。我认为中华文化有两个小问题，第一个小问题，投机取巧；第二个小问题，浮躁。”&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;“你有没有听过“杀鸡不用牛刀”？有没有听过“四两拨千斤”？很有道理是吧！只要你认为有道理的，基本上都是错的。”（&lt;/strong&gt;PS:郎咸平之所以会持反对观点，是因为这些都是标准的小概率事件，很多事不能太冒险，出其不意就全都玩完了。）&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;“我们从小学念到大学，什么时候老师教我们说：你们为何对岳飞被十二道金牌召回，仔细研究一下他背后的原因。屈原跳汩罗江，好悲壮，我们只能说：你看看楚怀王的昏庸。再讲一句大家熟悉的谚语叫做“失败是成功之母”，这是全世界最荒谬的逻辑，失败加失败加失败竟然能够成功。”&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;“我们对于失败背后的原因从来不去深究，从来不去研究，可是我告诉各位每一次失败都有原因，不是管理的问题就是战略的问题要不然就是其它的问题，但是我们的文化从来不鼓励我们去研究失败的原因。我们只看表面现象，不看背后真正的原因，这种只看表面的民族是浮躁的。”&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;“我们的企业家是我常常批评的，他们有世界五百强的病态心理，做到一定规模就要做大做强，这就是浮躁的心态。当去问这些企业家为什么要做大做强时，他们是讲不清的，他们认为做企业就是要做大做强，这个问题就来源于他的浮躁心态，他们认为企业做大做强才是正确的。”&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;“联想2004年之前曾经做大做强过，他们想搞IT服务、手机、互联网，到04年之后宣布失败，随后又收购IBM的手提电脑部门。这一切的做法就是我讲的，一个浮躁的心态让他喜欢做大做强，而其手法是投机取巧，喜欢小概率事件。”&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;“要成为现代企业，真正要在国际市场上一争长短，走到华为那一步就很不容易了，因为华为已经做到了工序流程，但是他的评分只有2点7分。可悲的是，我们99%的企业还没有弄清楚华为内部的工序流程的积累。”&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;“中华文化从大宋王朝开始逐渐丧失创造力，因为宋朝的理学的本质就是考据学，因此从宋朝朱熹之后的八股考试，完全扼杀了我们的创造力，因为他在搞考据。一千年之后的今天，我们还在搞考据，那我们的创造力在哪里？丧失创造力的当儿，你可想象到我们企业的发展一定是困难重重。在文化的束缚之下，你是浮躁的，你是喜欢投机取巧的，只有打破这个束缚你才能发挥创造力。”&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;有时候在想，现代中国人更是急功近利，普遍都喜欢投机取巧，所以现在中国没有多少好的成果。试想一下，当年原子弹没得引进，“两弹一星”是何其辉煌啊！现在有得引进的呢，像汽车，像软件业，做得怎么样呢？也许要等整个中国环境安定下来，中国人都踏踏实实，中国才会更快更好地发展！&lt;br /&gt;PS：想看原文的话可以进入&lt;span style="color:#006600;"&gt;&lt;a href="http://blog.sina.com.cn/s/blog_4120db8b0100cgoi.html" target="_blank"&gt;这里&lt;/a&gt;&lt;/span&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-4872500975820084908?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/4872500975820084908/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/blog-post_28.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/4872500975820084908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/4872500975820084908'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/blog-post_28.html' title='郎咸平:中国企业存在病态心理'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-3057991006053291420</id><published>2009-03-26T08:39:00.000-07:00</published><updated>2009-03-26T08:47:02.372-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='闲言'/><title type='text'>人生的第一次兼职</title><content type='html'>说实话，长到这么大，一直都是伸手一族的。这两天在维敏师姐的介绍下，在学校附近的一个科技楼里面做兼职。其实工作很简单，就是打印的资料有一些是打错的，经过更正了的，我的工作就是负责校对好有没有全部更正正确。&lt;br /&gt;    虽说简单，可是要一整天边对着电脑对边着资料，久了眼睛就会开始发眩，有点晕晕的感觉。而且在外面做工作就是跟在学校里面不一样，做得不好完全有可能被“叨”，今晚就被“叨”了一顿，晕晕乎。&lt;br /&gt;    其实两天就赚了一百多，也算不上多吧，可是真的，接触外面，才慢慢学会怎么做人，学会不敢懒散，学会对自己的老板负责，算是一个开端吧，嘿嘿~&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-3057991006053291420?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/3057991006053291420/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/blog-post_26.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/3057991006053291420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/3057991006053291420'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/blog-post_26.html' title='人生的第一次兼职'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-5487367299712735890</id><published>2009-03-20T04:51:00.000-07:00</published><updated>2009-03-20T05:30:35.215-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='闲言'/><title type='text'>你的大学是怎么过的？</title><content type='html'>&lt;span style="font-size:85%;"&gt;今天在Q上无意中跟一个高中同学扯到了今年就业的事，他说他担心以后的出路（他现在大二），大学很茫然，什么都学不到。“什么都学不到”，这句话突然对我有些触动。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;现在有多少人敢说自己的大学时光过得很充实呢？大学生活有相当一部分人是过得很糜烂的，也许这些人会在大三、大四时感受到一丝慌张，但也许晚了些了。年年都有新闻报道说百分之多少的大学生找不到工作而呆在家啊之类的云云，今年更是雪上加霜，金融危机的席卷让我们这些本科生变得更加难以“出售”！我不是什么砖家，我也没那么大的能耐，没有办法去分析这背后的根本原因，我只是在说自己的想法。年年有人一毕业就失业，这并不罕见，很多人把这个责任归根于我们的教育制度。这不假，我们的教育太过于喜欢理想化了，而且更大的“成就”在于扼杀学生的创造力。呵呵，中国老是在强调民族的创造力有多重要，却不知道中国人的创造力大部分在刚上幼儿园的时候就被那些老师给否定掉了。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;但是，有多少人能反转一下角度来审判一下自己呢？大学四年，自己究竟学到了多少东西？对于一部分人来说，大学的四年是快乐的，因为高考结束了，很多人以为凭着大学的一纸文凭就是高人一等了，这社会需要什么，需要人才，需要能力，唯独不需要虚无的文凭。当然，“天才都不是科班的，可是不是科班的，却连龙套也跑不了”。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;也许很多人并不赞成我的看法，毕竟这社会存在许多的阴暗面。也许社会就是这么不公平，但是我们整天埋怨又有什么用呢，还不如都静下心来，让自己在四年大学光阴中得到更多。我们都没有改变社会、改变制度的能力，我们也没有关系，没有背景，我们唯一能做的就是先改变自己的心态，不要陷入“读书无用论”的怪圈。四年过去了，是能人还是废物，也许就在这时候开始凸现了。&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-5487367299712735890?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/5487367299712735890/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/q.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/5487367299712735890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/5487367299712735890'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/q.html' title='你的大学是怎么过的？'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-1513675545078979732</id><published>2009-03-19T21:33:00.000-07:00</published><updated>2009-03-19T21:36:46.960-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='浏览器'/><title type='text'>如果浏览器是女人，嘿嘿</title><content type='html'>原文地址：&lt;a href="http://www.favbrowser.com/if-browsers-were-women/" target="_blank"&gt;http://www.favbrowser.com/if-browsers-were-women/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pentie.100megsfree8.com/web_image/if_browsers_were_women_cn.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 569px; CURSOR: hand; HEIGHT: 1250px" alt="" src="http://pentie.100megsfree8.com/web_image/if_browsers_were_women_cn.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-1513675545078979732?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/1513675545078979732/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/blog-post_19.html#comment-form' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/1513675545078979732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/1513675545078979732'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/blog-post_19.html' title='如果浏览器是女人，嘿嘿'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-3481739766691448276</id><published>2009-03-14T07:46:00.001-07:00</published><updated>2009-03-14T07:47:00.218-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='牛人强事'/><title type='text'>24块固态硬盘联手狂飙</title><content type='html'>&lt;embed align="middle" src="http://player.youku.com/player.php/sid/XNzY5MTI5NzI=" width="480" height="400" type="application/x-shockwave-flash" quality="high" allowscriptaccess="sameDomain"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;固态硬盘可以有多疯狂？三星近日找来一批玩家，将24块512GB三星固态硬盘装在一套系统内，组成了总容量达6TB的RAID阵列，其速度只有让人咂舌的份儿。试验在Intel的Skulltrail V8双路平台上进行，配置包括两颗Core 2 Extreme QX9775四核心处理器、两块Radeon HD 4870 X2显卡、4GB DDR2-800 FBDIMM内存、两个1000W电源等。为了提供所需24个SATA接口，使用了六个SFF-8087转接头，每个都能将SAS接口转成四个SATA接口，同时由六个MOLEX负责供电，每个支持四块固态硬盘。在经过24个小时的奋战后，系统终于组建完毕，并顺利启动。其中一位仁兄显然有点儿紧张，在一旁拿着灭火器待命。接下来就是极致性能演示了：1、数据传输率超过2010MB/s，也就是2GB/s以上。2、打开六个Word文档只需0.5秒钟。3、打开53个不同程序呢？18.09秒。4、碎片整理不过弹指一挥间的事儿。5、删除总计5.6GB的700个文件根本无需等待。6、把DVD光盘从二楼扔下去和将700MB DVDRip内容复制到硬盘上哪个更快？0.8秒钟，几乎同时。7、在1920×1200分辨率和最高纹理质量下玩《Crysis》轻松异常。8、一只手拎着工作中的24块固态硬盘跳啊跳，没有任何影响。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-3481739766691448276?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/3481739766691448276/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/24.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/3481739766691448276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/3481739766691448276'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/24.html' title='24块固态硬盘联手狂飙'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-6556853841015733422</id><published>2009-03-14T07:10:00.000-07:00</published><updated>2009-03-14T07:12:37.447-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='牛人强事'/><title type='text'>用XP系统声音做成的音乐，牛强</title><content type='html'>歌听多了，这样的音乐应该没见识过吧，嘿嘿！下面自个听下。&lt;br /&gt;&lt;embed align="middle" src="http://player.youku.com/player.php/sid/XMTg3ODI1NTI=" width="480" height="400" type="application/x-shockwave-flash" quality="high" allowscriptaccess="sameDomain"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-6556853841015733422?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/6556853841015733422/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/xp.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/6556853841015733422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/6556853841015733422'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/xp.html' title='用XP系统声音做成的音乐，牛强'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-4141198148349059065</id><published>2009-03-13T20:51:00.002-07:00</published><updated>2009-03-13T20:53:12.841-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>关于类与对象的一些心得</title><content type='html'>&lt;span class="Apple-style-span"   style="color: rgb(102, 102, 102);   line-height: 18px; font-family:Arial;font-size:12px;"&gt;&lt;table style="line-height: 20px !important; table-layout: auto; "&gt;&lt;tbody style="line-height: 20px !important; "&gt;&lt;tr style="line-height: 20px !important; "&gt;&lt;td style="font-family: Arial; word-wrap: break-word; word-break: break-all; visibility: visible !important; filter: none; font-size: 12px; line-height: 20px !important; "&gt;&lt;div id="blog_text" class="cnt" style="word-wrap: break-word; visibility: visible !important; filter: none; color: rgb(102, 102, 102); font-size: 12px; line-height: 20px; font-family: Tahoma; word-break: normal; overflow-x: hidden; overflow-y: hidden; position: static; "&gt;&lt;p style="line-height: normal; "&gt;    我们都知道虚函数为多态的实现起了关键作用，没有虚函数，多态也无从实现了。但是虚函数到时候是怎么做出来的呢，C++编译器是怎么达到动态绑定的目的的呢？&lt;/p&gt;&lt;p style="line-height: normal; "&gt;    其实C++编译器会建立一个虚函数表，每一个含有虚函数的类，编译器都会为它做出一个虚函数表，表中的每一个元素都指向一个虚函数的地址，这样在执行期就可以间接调用实际上想要绑定的函数了。此外，编译器还会为类加上一个成员变量，是一个指针，用来指向该虚函数表的（那指针常被称为vptr）。下面是一个例子：&lt;/p&gt;&lt;p style="line-height: normal; "&gt;class a{&lt;/p&gt;&lt;p style="line-height: normal; "&gt;public:&lt;/p&gt;&lt;p style="line-height: normal; "&gt;virtual void vfunc();&lt;/p&gt;&lt;p style="line-height: normal; "&gt;public:&lt;/p&gt;&lt;p style="line-height: normal; "&gt;data;&lt;/p&gt;&lt;p style="line-height: normal; "&gt;};&lt;/p&gt;&lt;p style="line-height: normal; "&gt;这样的话a对象实例在内存中占据这样的空间：&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;/p&gt;&lt;div forimg="1" align="left" style="font-family: Arial; word-wrap: break-word; word-break: break-all; visibility: visible !important; filter: none; font-size: 12px; line-height: normal; "&gt;&lt;p style="line-height: normal; "&gt;&lt;a target="_blank" href="http://hiphotos.baidu.com/coolmicheal/pic/item/d415dda00c81d0ab471064a3.jpg" style="color: rgb(102, 102, 102); line-height: 20px; text-decoration: none; font-size: 12px; font-family: Tahoma; "&gt;&lt;img class="blogimg" height="80" width="246" border="0" small="1" src="http://hiphotos.baidu.com/coolmicheal/abpic/item/d415dda00c81d0ab471064a3.jpg" style="line-height: normal; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="line-height: normal; "&gt;    每一个由此类派生出来的对象，都有这么一个vptr。当我们通过这个对象调用虚函数时，事实上是通过vptr找到虚函数表的，再找出虚函数的真正地址。&lt;/p&gt;&lt;p style="line-height: normal; "&gt;   虚函数表的内容是根据类中的虚函数声明次序，一一填入函数指针的。派生类会继承基类的虚函数表，当我们在派生类中改写了继承下来的虚函数时，虚函数表就受了影响：表中元素所指的函数地址将不再是基类的地址，而是派生类的地址。这样的话，指向派生类的基类类型指针调用虚函数时实际调用的是派生类所改写的虚函数了。&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-4141198148349059065?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/4141198148349059065/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/blog-post_4866.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/4141198148349059065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/4141198148349059065'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/blog-post_4866.html' title='关于类与对象的一些心得'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-4625129669860940538</id><published>2009-03-13T20:51:00.001-07:00</published><updated>2009-03-13T20:53:31.652-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='STL'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>顺序容器迭代器的失效</title><content type='html'>&lt;span class="Apple-style-span"   style="color: rgb(102, 102, 102);   line-height: 20px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:Tahoma;font-size:12px;"&gt;&lt;p style="line-height: normal; "&gt;    一般说来，会修改容器的内在状态或移动容器内的元素的一些容器操作，会使所有指向被移动的元素的迭代器失效，也可能同时使其他迭代器失效。使用无效迭代器是没有定义的，可能会导致与悬垂指针相同的问题。&lt;/p&gt;&lt;p style="line-height: normal; "&gt;    对于vector容器，当我们在容器中添加元素时，因为可能会导致整个容器的重新加载，这样的话，该容器涉及的所有迭代器都会失效。即使需要重新加载整个容器，指向新插入元素后面的那个元素的迭代器也会失效。&lt;/p&gt;&lt;p style="line-height: normal; "&gt;    而对于deque容器，在其首部或尾部插入元素不会使任何迭代器失效，而在首部或尾部删除元素则只会使指向被删除元素的迭代器失效。在deque容器的其他位置的插入和删除操作将使指向该容器元素的所有迭代器都失效。&lt;/p&gt;&lt;p style="line-height: normal; "&gt;    erase、pop_front和pop_back函数会使指向被删除元素的所有迭代器失效。但swap虽然可以交换两个容器内的所有元素，但是该操作不会删除或插入任何元素，而且保证在常量时间内实现交换。由于容器内没有移动任何元素，因此迭代器不会失效。&lt;/p&gt;&lt;p style="line-height: normal; "&gt;    总的说来，任何insert和push操作都可能导致迭代器失效。当编写循环元素插入到vector或deque容器中时，程序必须确保迭代器在每次循环后都得到更新。&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-4625129669860940538?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/4625129669860940538/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/blog-post_13.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/4625129669860940538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/4625129669860940538'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/blog-post_13.html' title='顺序容器迭代器的失效'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-7008683140188993785</id><published>2009-03-13T20:50:00.002-07:00</published><updated>2009-03-20T05:31:16.171-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='STL'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>关于选择顺序容器的提示（摘自C++ primer）</title><content type='html'>&lt;span class="Apple-style-span" style="COLOR: rgb(102,102,102); LINE-HEIGHT: 20px; webkit-border-horizontal-spacing: 2px; webkit-border-vertical-spacing: 2pxfont-family:Tahoma;font-size:12;"  &gt;&lt;p style="LINE-HEIGHT: normal"&gt;    下面列举了一些选择容器类型的法则：&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal"&gt;    （1）如果程序要求随机访问元素，则应使用vector或deque容器。&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal"&gt;    （2）如果程序必须在容器的中间位置插入或删除元素，则应采用list容器。&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal"&gt;    （3）如果程序不是在容器的中间位置，而是在容器首部或尾部插入或删除元素，则应采用deque容器。&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal"&gt;    （4）如果只需要在读取输入时在容器的中间位置插入元素，然后需要随机访问元素，则可考虑在输入时将元素读入到一个list容器，接着对此容器重新排序，使其适合顺序访问，然后将排序后的list容器复制到一个vector容器。&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal"&gt;    如果程序既需要随机访问又必须在容器的中间位置插入或删除元素，那应该怎么办呢？&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal"&gt;    此时，选择何种容器取决于下面两种操作付出的相对代价：随机访问list容器元素的代价，以及在vector或deque容器中插入/删除元素时复制元素的代价。通常来说，应用中占优势的操作（程序中更多使用的是访问操作还是插入/删除操作）将决定应该选择什么类型的容器。&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal"&gt;    决定使用哪种容器可能要求剖析各种容器类型完成应用所要求的各类操作的性能。&lt;/p&gt;&lt;p style="LINE-HEIGHT: normal"&gt;    &lt;strong style="LINE-HEIGHT: normal"&gt;最佳实践：&lt;/strong&gt;&lt;span style="LINE-HEIGHT: normal;font-size:85%;" &gt;如果无法确定某种应用应该采用哪种容器，则编写代码时尝试只使用vector和list容器都提供的操作：使用迭代器：使用迭代器，而不是下标，并且避免随机访问元素。这样编写代码，在必要时，可很方便地将程序从使用vector窗口修改为使用list容器。&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-7008683140188993785?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/7008683140188993785/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/c-primer.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/7008683140188993785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/7008683140188993785'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/c-primer.html' title='关于选择顺序容器的提示（摘自C++ primer）'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-5740799249702322966</id><published>2009-03-13T20:50:00.001-07:00</published><updated>2009-03-13T20:54:05.878-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='STL'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>对于vector容器的一点心得</title><content type='html'>&lt;span class="Apple-style-span"   style="  line-height: 20px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:Tahoma;font-size:12px;"&gt;    vector容器为了支持快速的随机访问，其元素是以连续的方式存放－－每一个元素都紧挨着前一个元素存储。看到这里，是不是想真起了数组的存储方式？那这样的话虽然访问比较快速，但我们往容器内添加一个元素的时候，岂不是得重新分配存储空间，用以存放原来的元素以及新添加的元素：存放在旧存储空间中的元素被复制到新存储空间里，接着插入新元素，最后撤销旧的存储空间。假如每次添加新元素都得这样的话，那这种性能将会让人无法忍受。既然这样，那为什么还要设计vector容器呢，因为按这样的话list容器应该优于vector容器啊。但是，通常出现的反而是以下情况：对于大部分应用，使用vector容器是最好的。原因在于，标准库的实现者使用这样的内存分配策略：以最小的代价连续存储元素。由此而带来的访问元素的便利弥补了其存储代价。&lt;br /&gt;    为了使vector容器实现快速的内存分配，其实际分配的容量要比当前所需的空间多一些。这样的话，并不是每次添加元素时都需要生分配容器。这样效率自然比较高。这就是用空间换时间吧。vector类有两个成员函数：capacity和reserve，使程序员可与vector容器内存分配的实现部分交互工作。capacity操作获取在窗口需要分配更多的存储空间之前能够存储的元素总数，而reserve操作则告诉vector容器应该预留多少个元素的存储空间。这里先要弄清楚capacity和size的区别，size指的是容器当前所拥有的元素的个数，而capacity则指容器在必须分配新存储空间之前可以存储的元素总数。这样的话，如果size不超过capacity的话，容器就不用分配新存储空间。通常size是少于capacity的。reserve操作可以增加容器预留的存储空间，但要注意，不可以减少容器原本已经预留的存储空间，只能增加。&lt;br /&gt;    总的来说，比起list和deque容器，vector的增长效率通常会更高。但如果在内存分配比较严格的情况下，选用list容器可能会更好一点，毕竟list容器是采用链表的存储方式的，空间利用比较有效，当然，在读取的时候效率肯定是会比较低的。&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-5740799249702322966?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/5740799249702322966/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/vector.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/5740799249702322966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/5740799249702322966'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/vector.html' title='对于vector容器的一点心得'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-386497991501969962</id><published>2009-03-13T20:49:00.001-07:00</published><updated>2009-03-13T20:49:45.067-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>输出指向字符串的指针的地址</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102); font-family: Tahoma; font-size: 12px; line-height: 20px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;p style="line-height: normal; "&gt;如果因某个原因要输出指向字符串的指针保存的地址，就必须交它显式强制转换为void*类型，这样就会调用ostream中带有该参数类型的成员函数，将地址发到流中。&lt;/p&gt;&lt;p style="line-height: normal; "&gt;const char *pMessage = "abc";&lt;/p&gt;&lt;p style="line-height: normal; "&gt;cout &lt;&lt;&gt;(pMessage);&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-386497991501969962?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/386497991501969962/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/386497991501969962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/386497991501969962'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/blog-post.html' title='输出指向字符串的指针的地址'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-2974508445957567387</id><published>2009-03-13T20:48:00.001-07:00</published><updated>2009-03-13T20:48:57.535-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>C++中重载和使用增量运算符（++）时应注意的事</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102); font-family: Arial; font-size: 12px; line-height: 18px; "&gt;&lt;table style="line-height: 20px !important; table-layout: auto; "&gt;&lt;tbody style="line-height: 20px !important; "&gt;&lt;tr style="line-height: 20px !important; "&gt;&lt;td style="font-family: Arial; word-wrap: break-word; word-break: break-all; visibility: visible !important; filter: none; font-size: 12px; line-height: 20px !important; "&gt;&lt;div id="blog_text" class="cnt" style="word-wrap: break-word; visibility: visible !important; filter: none; color: rgb(102, 102, 102); font-size: 12px; line-height: 20px; font-family: Tahoma; word-break: normal; overflow-x: hidden; overflow-y: hidden; position: static; "&gt;&lt;p style="line-height: normal; "&gt;假如a为int类型，初始值为10。经过++（++）a和（a++)++后的值为多少呢？我想很多人应该会回答是14。错了，应该为13。而且可能编译通不过。因为前递增运算（++a)返回的是对象引用，而后递增运算（a++）采用值返回。这样的话（a++)++就是错误的了，因为a++返回的不是左值，不能再进行递增运算。&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; 我们编写类时，重载（++）时就得编写两个重载函数了，因为运算符函数的前缀形式和后缀形式不同。这时候要如何区分呢？我们可以在后递增运算符重载函数的中多加如一个int标识，这个标识仅起到区分作用，没有实际作用的。例如，用任意类object重载++的函数声明如下：&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; class object{&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; &lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;public:&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; &lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;object&amp;amp; operator++();&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; &lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;const object operatoor++(int);&lt;/p&gt;&lt;p style="line-height: normal; "&gt;};&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; 前缀形式一般要求返回的当前对象递增后的引用。&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; 对于后缀形式，先在修改之前创建原对象的副本，再返回执行递增后的原对象的副本。后缀运算符的返回值声明为const,可阻止编译theobject++++这样的表达式。这种表达式会与运算符的一般形式混淆，产生不一致。但是，如果不把返回类型声明为const，这种用法就是允许的。&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-2974508445957567387?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/2974508445957567387/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/c.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/2974508445957567387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/2974508445957567387'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/c.html' title='C++中重载和使用增量运算符（++）时应注意的事'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6486359669602069688.post-1927364107773706377</id><published>2009-03-13T20:44:00.001-07:00</published><updated>2009-03-13T20:44:56.869-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>sizeof()有趣的地方</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102); font-family: Tahoma; font-size: 12px; line-height: 20px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;今天在浏览网页时无意中看到这样一道题：&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; &lt;wbr style="line-height: normal; "&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;wbr style="line-height: normal; "&gt; int main()&lt;br /&gt;&lt;wbr style="line-height: normal; "&gt; {&lt;br /&gt;&lt;wbr style="line-height: normal; "&gt; &lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;int i;&lt;br /&gt;&lt;wbr style="line-height: normal; "&gt; &lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;i = 10;&lt;br /&gt;&lt;wbr style="line-height: normal; "&gt; &lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;printf("i : %d\n",i);&lt;br /&gt;&lt;wbr style="line-height: normal; "&gt; &lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;printf("sizeof(i++) is: %d\n",sizeof(i++));&lt;br /&gt;&lt;wbr style="line-height: normal; "&gt; &lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;printf("i : %d\n",i);&lt;br /&gt;&lt;wbr style="line-height: normal; "&gt; &lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt;return 0;&lt;br /&gt;&lt;wbr style="line-height: normal; "&gt; }&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; 我一眼看到这题，认定就应该是输出10、4和11。&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; 编译后才知道我错了，是10、4和10。百思不得其解，为什么不是11呢？难道i++这时并没有运算？&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; 后来在网上找了好久，才知道sizeof在编译期完成，我们应该把sizeof(xxx)看成一个size_t的常量，其中xxx的运算应完全忽略，sizeof只关心xxx的数据类型而已。看下面：&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; char i = 1;&lt;br /&gt;int j = sizeof(i++);&lt;br /&gt;int k = sizeof(i+0.1);&lt;br /&gt;printf("%d %d %d", i, j, k); // 输出为 1 1 8，因为i++并不真正计算，sizeof只关心输入的数据类型，i+0.1被提升为double&lt;/p&gt;&lt;p style="line-height: normal; "&gt;&lt;wbr style="line-height: normal; "&gt; 是否超出你以前对sizeof()的认识呢？呵呵&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6486359669602069688-1927364107773706377?l=coolzgx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coolzgx.blogspot.com/feeds/1927364107773706377/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://coolzgx.blogspot.com/2009/03/sizeof.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/1927364107773706377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6486359669602069688/posts/default/1927364107773706377'/><link rel='alternate' type='text/html' href='http://coolzgx.blogspot.com/2009/03/sizeof.html' title='sizeof()有趣的地方'/><author><name>coolzgx</name><uri>http://www.blogger.com/profile/16794133240221622351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
