|
原帖由 低碳马甲 于 2010-6-5 19:38 发表 ![]()
不对,it是独立于what,很类似于一个指针,核心是保留指向set里面的一个节点,如果set为空,那么begin和end返回的it应该用某种形式表示其指向一个无效的节点。那么一个无效的节点--/++,无论多少次,还是指向一个无效的节点。这点和set里面有没有内容应该是完全一致的。但是事实的情况是,如果set有内容,无论你++/--多少次都不会出问题,但是set为空,++/--一次就出错了。
你可以想想,如果stl的set按你的想法这样实现,对写程序的我们就是一场灾难
我希望有错误是越早发现越好,程序崩溃或死循环都行
你所展示的代码其实就是下标越界,把it指到队列以外的空间,这已经是出错了
但你还希望系统不要报错,给一个正常的假象给程序员
我们程序员还傻呵呵++或--,而其实这个it早已经不知指向哪个异次元空间
但你的实现一直不告诉我们真相,还说,行的,这样没事,我们就一直处在虚幻的安全中继续做着错事
最恐怖的是我们还不知道出问题了
程序员需要的是一个可以依赖的伙伴set,我++了,那就一定是真的++了
如果不能++你就告诉我 |
|