用户操作
[即时聊天] [发私信] [加为好友]
刘晓伟ID:lxwde
167994次访问,排名457好友0人,关注者2
lxwde的文章
原创 27 篇
翻译 34 篇
转载 0 篇
评论 243 篇
最近评论
sankecong369:那里能下载呀
lshvs2006:你好,你設計的東東非常不錯。
但是,現在有個疑問,不知道,怎樣保存設計的文件,
存成XML 文件格式可能會好一點,但是,不知道如何去存? 需要調用什么接口 或是 需要寫什么 方法嗎?

期待您的指教。謝謝

lsh2011@163.com
zeeler:补上这一部分吧(本人中文表述能力没有lxwde强哦 :) ):
The Singleton
也许最简单的设计模式是Singleton模式了,它可以给某种类型提供唯一的对象,下面是个例子:
(译者按:例子省略)
创建一个唯一对象的关键是防止客户程序员(client programmer)用其他任意方法创建对象,只能用你提供的方法。你必须把所有构造器写成p……
zeeler:翻译的不错呀,全力支持!
不过在Design principles和Classifying patterns之间还有个The Singleton部分好像lxwde漏掉了?还是Bruce Eckel修改版面了?
总之,支持呀,本来我也想翻译一下的,不过没有lxwde这么有毅力,翻译一节就停了,实在很累的,所以非常敬佩lxwde能坚持做这么多!
roger_77:可惜,
这个库被boost放弃了,加入另一个ASIO的网络类库
文章分类
收藏
    相册
    链接
    My articles on codeproject
    SharpFormEditor下载
    Thinking in Patterns中文版
    友情链接
    alai04
    C++的罗浮宫
    fatalerror99
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 《超越C++标准库:Boost库导引》:Boost库简介-数据结构,容器,迭代器,以及算法收藏

    新一篇: 《超越C++标准库:Boost库导引》:前言 | 旧一篇: 《超越C++标准库:Boost库导引》:Boost库简介-字符串和文本处理

    数据结构,容器,迭代器,以及算法

    Boost.Any

    Any库支持对任意类型的值进行类型安全的存取。当需要使用可变类型(variant type)的时候,有三种可能的解决方案:

    • 无差别的(Indiscriminate)类型,比如void*。这种解决方案几乎永远不可能达到类型安全,要尽可能地避免使用它。
    • 支持对一组类型进行存取的可变类型。
    • 可以进行转换的类型,比如在字符串类型和数字类型之间进行转换。

    Any实现的是第二种解决方案,基于值的(value-based)可变类型,而且它支持任意多的类型。这个库经常被用于在标准库容器中存储异构类型(heterogeneous types)。更多信息请参考“Library 6: Any.

    Any的作者是Kevlin Henney

    Boost.Array

    这个库是对C风格的数组的一个包装。可以把它们作为标准库容器的函数和类型定义(typedefs)的参数。从效果上看,这使得我们可以像对待标准库容器那样对待常规数组。这么做之所以有用是因为它在不影响效率的情况下增加了安全性,而且可以用统一的语法来处理标准库容器和常规数组。上述第二个理由意味着我们可以把常规数组应用于绝大多数需要对容器类型进行操作的函数。通常情况下,当运行效率要求最好使用常规数组而不是std::vector的时候,考虑使用Array类。

    Array的作者是Nicolai Josuttis。他借用Matt AusternBjarne Stroustrup的思想,构建了这个库。

    Boost.Compressed_pair

    这个库由一个单独的参数化类型,compresed_pair组成,它非常类似于标准库的std::pair。与std::pair的不同之处在于,boost::compressed_pair会对模板参数进行判断,看看它们是否为空,如果有空参数,就使用针对空参数的优化方法对pair的大小(size)进行压缩。

    pair的模板参数类型可能为空的时候,使用boost.compressed_pair来对pair进行存储。

    Compressed_pair的作者是Steve ClearyBeman DawesHoward Hinnant,以及John Maddock

    Boost.Dynamic_bitset

    Dynamic_bitset库很大程度上类似于std::bitset,不同之处在于std::bistset把位数(也就是容器的大小)作为参数,而boost::dynamic_bitset支持运行时刻对容器大小进行调整。尽管dynamic_bitset支持与std::bitset相同的接口,但是它增加了一些针对运行时刻功能的函数以及std::bitset所没有的函数。通常情况下,当bitset的大小在编译时刻不能完全确定或者程序执行过程中可能会改变的时候,使用这个库作为std::bitset的替代。

    Dynamic_bitset的作者是Jeremy SiekChuck Allison

    Boost.Graph

    Graph是个处理图(graph)结构的库,它的设计在很大程度上受到STL的影响。它是通用以及高度可配置的,包括一些不同的数据结构:邻接表(adjacency lists),邻接矩阵(adjacency matrices),边线表(edge lists)。Graph库还提供了许多图算法,比如Dijsktra最短路径(Dijsktra's shortest path),Kruskal最小生成树(Kruskal's minimum spanning tree),拓扑排序等等,还有许多。

    Graph的作者是Jeremy Siek Lie-Quan Lee以及Andrew Lumsdaine

    Boost.Iterator

    这个库为创建新的迭代器类型提供了一个框架,此外,它还提供了一些C++标准之外的有用的迭代器适配器。创建与标准兼容的迭代器类型通常是一件困难并且乏味的工作。Iterator库通过自动完成大多数细节部分的东西(比如提供标准所要求的typedefs)简化了上述工作。Iterator还使得适配一个现有的迭代器类型并且赋予它新的行为成为可能。比如,间接的迭代器适配器可以实施一个额外的去引用(dereferencing)操作,使得我们可以这么对待元素是指向某种类型的指针(或者智能指针)的容器,就好像容器所包含的元素就是那种类型的对象实体。

    Iterator的作者是Jeremy SiekDavid Abrahams,以及Thomas Witt

    Boost.MultiArray

    MultiArray提供了一个多维容器,它在很大程度上类似于标准库容器而且相对于向量的向量(vectors of vectors)更加高效和直接。容器的维数是在声明的时候指定的,但是也支持切分和针对不同视图的投影,以及运行时刻的维数改变。

    MultiArray的作者是Ronald Garcia。

    Boost.Multi-index

    Multi-index针对底层容器提供多个索引。也就是说,针对同一个底层容器你可以有不同的排序规则以及不同的存取语义。

    std::setstd::map不够用的时候可以使用Boost.Multi-index,通常这是为了达到高效的元素检索而需要维护多个索引情况。

    Multi-index的作者是Joaquín M Lopez Muioz.

    Boost.Range

    这个库是一组针对ranges的概念和实用程序。直接使用ranges,而不是用代表ranges的一对迭代器来限定算法,这么做大大简化了算法的使用并且提高了用户代码的抽象级别。

    Range的作者是Thorsten Ottosen

    Boost.Tuple

    标准C++(通过使用类模板std::pair)已经包括了pairs,但是当前没有对n层垫片(n-tuples)的支持。Enter Tuple。与使用结构(structs)或者类定义n层垫片不同,类模板垫片直接支持把垫片定义为函数的返回类型或者参数,而且它还提供了存取垫片元素的泛型方法。关于这个库的更多详细信息请参见“Library 8: Tuple 8”。Tuple已经被即将到来的标准库技术报告所采纳。

    Tuple的作者是Jaakko Jarvi

    Boost.Variant

    Variant库包括一个通用的无差别的联合类(discriminated union class ,这个类用于存储和操作来自于一组异构类型的对象。这个库的特性之一是,支持类型安全的访问,这消除了针对可变数据类型的类型转换代码的常见问题。

    Variant的作者是Eric FriedmanItay Maman 

    发表于 @ 2005年10月01日 12:27:00|评论(loading...)|编辑

    新一篇: 《超越C++标准库:Boost库导引》:前言 | 旧一篇: 《超越C++标准库:Boost库导引》:Boost库简介-字符串和文本处理

    评论

    #Dream_soft 发表于2005-12-07 22:27:00  IP: 61.128.234.*
    Tuple 这个最好翻译成元组
    #lxwde 发表于2005-12-08 21:51:00  IP: 218.1.145.*
    to Dream_soft
    又查了一下,确实应该是译为元组。不知道我从哪里看来的,一直译为垫片,也没有xdict确认一下。寒):
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © lxwde