免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1057 | 回复: 1
打印 上一主题 下一主题

STL源码 怎一“妙”字了得 (运用高手请进) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-18 12:45 |只看该作者 |倒序浏览
最近在看《STL源码剖析》

发觉STL的实现果然精妙,难怪,喉结说:
“我的确认为99.99%的程序员所写的程序,在SGI STL面前都是三流水准”

可是妙归妙,我该怎么样来运用这些技巧呢?
请高手不惜指教

比如:
list里sort算法的实现:

template <class T, class Alloc>;
void list<T, Alloc>;::sort() {

    if(node->;next == node || link_type(node->;next)->;next == node)
        return;
   
    list<T, Alloc>; carry;
    list<T, Alloc>; counter[64];
    int fill = 0;
    while (!empty()) {
        carry.splice(carry.begin(), *this, begin());
        int i = 0;
        while (i < fill && !counter.empty()) {
            counter.merge(carry);
            carry.swap(counter[i++]);
        }
        caryy.swap(counter);
        if (i == fill) ++fill;
     }
     
     for(int i = 1; i < fill; ++i)
         counter.merge(counter[i - 1]);
     swap(counter[fill - 1]);
}

《STL源码剖析》P.142

其是用quick sort来实现的,我是看了整整一节课才看懂啊
看懂后,感慨: 他怎么就能想到的呢?!

我该怎么运用这种技巧,或方法呢?
如果只图看懂,而不去用,那还不如不看:(

请高手就以该排序算法为例,来讲讲 如何在实际中运用

谢谢了

论坛徽章:
0
2 [报告]
发表于 2004-03-19 13:11 |只看该作者

STL源码 怎一“妙”字了得 (运用高手请进)

更正:不是quick sort

喉结错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP