日知录
sinux_1983
c ,编程,思考,电影,文学,哲学
展开
-
STL学习笔记(一):Value语义
STL只支持Value语义,不支持reference语义。就是说所有容器只会建立并返回元素的副本。STL只保证对象“相等”(equal)而不是“同一”(identical)。 但是,可以通过value语义实现reference语义。通常有三种方式,最简单的是通过指针,好的方法是通过smart pointers,更进一步的安全方法是引用计数式的smart pointe原创 2007-11-01 10:53:00 · 604 阅读 · 0 评论 -
STL学习笔记(二):STL对待错误的态度
STL的设计原则是效率优先,安全次之。所以STL中几乎没有提供内建的错误检查机制。这就意味着如果程序员违反了规则,将会导致未定义行为。 当然,可以通过重新包装的STL而获得安全的STL,这就需要在效率和安全之间做出权衡。原创 2007-11-01 10:57:00 · 487 阅读 · 0 评论 -
STL学习笔记(三):STL的可扩展性
要把STL理解成一个framework,而不仅仅是一个高效的tools. 当然,在达到一定的水平之前,还是把它当作tools比较好。原创 2007-11-01 11:00:00 · 447 阅读 · 0 评论 -
作用域掩藏
在comp.lang.c++上看到的一个讨论。关于作用域的,不过后来又涉及到了初始化的问题。原文:Hi folks.Yesterday I modified some old code of mine, and ran intotrouble when I tested it. It turned out that I had renamed avariable to a name that wa原创 2007-11-01 10:30:00 · 353 阅读 · 0 评论 -
STL学习笔记(四):仿函数(functor)
任何东西,只要其行为像一个函数,它就是一个函数。这就是functor的精髓。所谓函数行为,是指可以“使用小括号传递参数,进而调用某个东西”。 仿函数有一下优点: 1、仿函数是“SMART FUNCTIONS”。因为它是一个对象,可以用有成员函数和成员变量。这意味着它可以拥有状态。 2、仿函数有自己的型别。原创 2007-11-01 11:07:00 · 492 阅读 · 0 评论