博文

目前显示的是 一月, 2005的博文

我敢打赌,今年是国内各大商业网站的寒冬

我敢打赌,今年是国内各大商业网站的寒冬
除非有谁能先跳出来找到一个好的方式自救
丁磊确实厉害,先感知能力很强,短信他第一个开始做,社会网络他也第一个开始做,但是,这次,未必像上次那么容易。社会网络的收益是不会那么快的。或者说,未必有什么盈利点
这算是我2005年做的第一个预言吧,结果,明年的今天,我再来看

What type should std::set::begin() return?

前几天在写一个小程序,总是无法在VC++.net 2003和gcc下同时编译通过。因为我要做的是一个跨平台的库,所以这点极为重要,于是就一点点的去查看出错信息,看究竟是哪里的问题。
查到最后,发现原来是const的问题。
VC++下set::begin() const返回const_iterator,而gcc下返回iterator. 也许你认为这是小事,其实不是。多一个const,少一个const,都是无法编译通过的。我别无所求,只求能在两个编译器下都能编译通过。
那么,究竟谁的实现更好些呢?抱着这样的疑问,我把我的问题发到了comp.lang.c++.
然后,我查看了下二者的STL 中的set的实现。发现他们在内部不约而同的都是使用的红黑树(Red-Black tree)来实现的.虽说STL standard中并没有tree这样的container.但是你在VC++的头文件中可以发现一个,gcc中同样有一个
.内部实现的都是一棵红黑树。但是,之后在实现set的时候,二者的方式就有所不同了。
MS用的是is-a关系从class xtree继承,GNU 用的是has-a关系在set内部定义了一个 _RBTree。
如果你去比较下二者的源代码,你会发现MS的要简洁的多。虽说从本质上来讲基本都是一样的。但是由于GNU用的是has-a关系,所以它至少必须在其set类中对所有的外部接口重新定义一次。而在MS STL的std::set源代码中,你找不到begin()这个函数的定义,它是直接从基类 xtree中继承而来的。
首先,我们查看标准中std::begin()是怎么定义的。
iterator set::begin() const.
和gcc完全一样
再看MS VC++ STL中
const_iterator begin() const;
iterator begin().
你会发现在GNU的实现中,一个const的this指针,却返回了一个mutable iterator?但是标准中就是这样定义的,为什么呢?我们继续来查看
在《Generic Programming and the STL》(Matthew H. Austern)中作者对set的定义是:
“Model Of
Sorted Associative Container, Simple Associative Container, Uniqu…

遍历std::vector时容易犯的bug

Hi
Can you find where is the bug?std::vector<Switch> Switches; for(int i=0;i<Switches.size()-1;i++){ /*do stuff here*/ } vector::size()从语义上来讲,必须返回一个非负的值,所以它的返回值
被定义为unsigned.也就是说,如果Switches为空,它将返回0,然后减去1,
得到0xffffffff这样的值。。。
所以,这样的遍历,最好用for_eachstd::for_each(Switches.first(),Switches,last(),func); 或者自己这样手动写一个typedef Vector<Switch>::Iterator switchIter; for(switchIter i=switches.first(),i != switches.last(),++i){ /*do stuff here*/ } 注意,这里一定要写++i而不是i++.
如果要优化下,就别把switches.last()写在for的()中

艾丽莎·库斯伯特 小档案

艾丽莎·库斯伯特
姓名:Elisha Cuthbert
呢称:Heesh.
出生地:卡尔加里[加拿大西南部城市]
头发:金色
眼睛:蓝色
现居住地:洛杉矶
爱好:滑雪、画画、摄影
荣誉:
2004年《男人帮》百大性感美女排名第10位
2003年《男人帮》百大性感美女排名第14位
2003年《Maxim》杂志评出年度最热辣女星
2002年《Maxim》杂志百大性感美女排名84位
2001年凭借电视剧《幸运女孩》获Gemini最佳表演奖
个人爱好:
食品:墨西哥餐、海鲜、意大利面
球队:洛杉矶湖人队
■主要影视作品
电影
2004 《邻家女孩》
(The Girl Next Door)
2003 《重返校园》
(Old School)
《真爱至上》
(Love Actually)
2000 Believe
1997 《月亮之舞》
(Dancing on the Moon)
电视
2001-2004 《24》