
C++
文章平均质量分 73
winmain
这个作者很懒,什么都没留下…
展开
-
STL程序设计实践一:谨慎使用下标运算符
STL程序设计实践一:谨慎使用下标运算符 STL中容器占据很重要的地位,部分容器支持像数组一样的下标运算符,使其能向数组一样方便的访问,但也存在同样的限制,如向量和双端队列。所以在应用中要小心使用。举例说明: vector nvec(10,7); //定义元素都为7大小为10的整形向量 int n = nvec[0]; //获取向量的第一个元素 d原创 2001-11-10 18:39:00 · 1206 阅读 · 1 评论 -
侯老师--STL源码剖析--书中的疑问三
侯老师--STL源码剖析--书中的疑问三前言我在看侯捷的STL源码剖析一书中”第二章2.2具备次配置力(sub-allocation)的SGI空间配置器(第47页)看到了如下的代码,我认为是有错误的。SGI空间配置器原文 ……SGI的空间配置器与众不同,也和标准规格不同,其名称为alloc而非allocator,而且不接收任何引数。换句话说如果你要在程式中明白原创 2001-11-15 11:31:00 · 1074 阅读 · 1 评论 -
侯老师--STL源码剖析--书中的疑问二
侯老师--STL源码剖析--书中的错误二前言我在看侯捷的STL源码剖析一书中”第二章设计一个阳春的空间配置器JJ::allocator(第45页)看到了如下的伪代码,我认为是有错误的,代码如下:命名空间JJ中代码……templateinline void _construct(T1* p, const T2& value){ new(p) T1(valu原创 2001-11-16 10:04:00 · 1325 阅读 · 3 评论 -
C++模板的定制三:部分定制C++类
C++模板的定制三:部分定制C++类 类模板的多参语法如下: template class classname{ ……};T可以是任何类型,上一节我们介绍了定制类模板,本节说一下类模板的部分定制,意思就是说只定制模板参数的一部分,从而得到我们想要的目的,本节直接来描述其语法,我想信大家都不愿意我在这罗嗦,都想直接了解其语原创 2001-10-27 19:06:00 · 1131 阅读 · 0 评论 -
STL程序设计实践六:自定义类型尽量定义恒等和小于操作符
STL程序设计实践六:自定义类型尽量定义恒等和小于操作符袁小凯华南理工大学计算机研究所北区研发二部Email – ccplusplus@21cn.com 比较操作是非常一般的操作,在使用STL进行程序设计时也是如此。比较操作有六种,分别是:==、!=、>、=、operator ==操作符当你使用STL中的vector存储自定义类型时,可能你会进行一些操作,必竟你使用ve原创 2002-01-12 17:18:00 · 1090 阅读 · 0 评论 -
STL程序设计实践五:巢状式的型别宣告
STL程序设计实践五:巢状式的型别宣告Email – ccplusplus@21cn.com前言 STL是泛型程式设计的一个研究成果。在泛型程式设计中巢状式的型别宣告是其的惯用手法,它利用了typedef关健字。”STL程序设计实践四”中我们对该关健字的用途做了些简单介绍。这里说一下利用typedef关健字在泛型程式设计中进行巢状式的型别宣告。也算是对”STL程原创 2001-12-01 12:46:00 · 7517 阅读 · 0 评论 -
Obfuscated C++
Obfuscated C++作者:Robert Murray译者:袁小凯Email – ccplusplus@21cn.com译序在我看到这个题目后,就想试着写出其输出。结果和我写的相同,但是,我没有喜乐,而是一脸的迷惑。因为我不知道如何用我有限的C++知识去解释为什么,我只是猜对的,可悲吧!但看了结论后,一切都是那么的简单,那么明了。帖上这篇文章,让更多的人原创 2001-11-27 17:27:00 · 5476 阅读 · 0 评论 -
C++中union的应用剖析
C++中union的应用剖析作者:袁小凯华南理工大学计算机研究所北区研发二部Email – ccplusplus@21cn.com前言 熟悉C的程序员都知道union(联合体)的用法,利用union可以用相同的存储空间存储不同型别的数据类型,从而节省内存空间。当访问其内成员时可用”.”和”->”来直接访问。在C++出现后,它继承了union并保留了其在C中的特性。但原创 2001-11-20 08:29:00 · 1376 阅读 · 0 评论 -
C++模板的定制四:定制成员函数和缺省类参
C++模板的定制四:定制成员函数和缺省类参一、 定制成员函数定制模板类成员函数,就是定义一个指定类型的类成员函数取代模板类定义的成员函数,实现特殊的功能,从而完成模板类成员函数的定制。 template class classname{ public: classname原创 2001-11-24 10:25:00 · 1416 阅读 · 0 评论 -
C++模板的定制一:定制函数模板
前言 C++模板是C++的扩展,模板为C++注入了新的活力。C++模板分为函数模板和类模板。C++模板对于大多数C++程序员并不陌生。C++模板有一定的定制特性。C++模板的定制一:定制函数模板 函数模板的基本语法如下: template T fun(T t1,…){ return t1;}原创 2001-10-27 10:35:00 · 1738 阅读 · 0 评论 -
STL程序设计实践七:尽量定义class形式的Function Object
STL程序设计实践七:尽量定义class形式的Function Object袁小凯华南理工大学计算机研究所北区研发二部Email – ccplusplus@21cn.com 前言 在使用STL进行程序设计时,你会经常用到Function Object,尤其是在写一个泛型算法并充许把行为参数化时。Function Object简单点讲分两种:1.函数指针(最简单的Func原创 2002-01-14 09:12:00 · 1030 阅读 · 0 评论 -
STL程序设计实践三:剖析STL容器的拷贝构造和赋值特性
STL程序设计实践三:剖析STL容器的拷贝构造和赋值特性拷贝构造STL容器都支持元素的插入操作,但是当你插入自定义类对象你必须要清楚的了解STL容器是如何完成插入,对插入的自定义类对象有什么基本的要求。否则会出现你想不到的错误。举例说明。class TestCpyConstruct{public:TestCpyConstruct():data(NULL){da原创 2001-11-10 18:37:00 · 988 阅读 · 0 评论 -
STL程序设计实践二: 注意迭代子的失效
STL程序设计实践二: 注意迭代子的失效迭代子是STL中很重要的特性,但是其很脆弱(我个人认为),因为使用它的条件很苛刻,一不小心就失效了。其在两中情况下可能会失效。1.当容器有插入操作时在初始化了迭代子后,如果容器有插入操作时,迭代子可能失效。#include #include using namespace std; void main()原创 2001-11-10 18:38:00 · 822 阅读 · 0 评论 -
C++模板的定制二:定制C++类
C++模板的定制二:定制C++类 类模板的基本语法如下: template class classname{ ……};T可以是任何类型,下面我就举一个类模板的例子(请大家不要追究这个类子需不需要这样写或有没有意义,记住这只是举例,我们关心的应该是语言的特性,这才是最重要的,不是吗?)。template cl原创 2001-11-09 20:33:00 · 1052 阅读 · 0 评论 -
Generic Programming: Mappings between Types and Values
Generic: Mappings between Types and ValuesAndrei Alexandrescu前言 Andrei Alexandrescu的文章不用我说了吧,经典!由于小弟水平有限,不敢翻译,恐有误人子弟之嫌,好了大家还是赶快看吧。^_^,望看过的朋友发表一下你的心得,共同探讨。Note: This article updated原创 2001-11-26 10:02:00 · 1123 阅读 · 0 评论 -
C++模板的定制五:对定制成员函数的补充
C++模板的定制五:对定制成员函数的补充作者:袁小凯华南理工大学计算机研究所北区研发二部Email – ccplusplus@21cn.com 前言在” C++模板的定制四:定制成员函数和缺省类参 “一文中我简单介绍了模板类中成员函数的定制(全特化),但是有一细节还是说清楚的好,以免大家误解。在C++中不能局部定制模板类中的成员函数。再说一下模板类中的模板成员函数的用法。希原创 2001-11-24 10:59:00 · 959 阅读 · 0 评论 -
侯老师--STL源码剖析--书中的疑问一
侯老师--STL源码剖析--书中的疑问一前言我在看侯捷的STL源码剖析一书中”第一章Class的语法和语意(第30页)”看到了如下的伪代码,我认为是有错误的,因为代码中在没有初始化迭代子的情况下使用。代码如下:状态8:__STL_MEMBER_TEMPLATES#include using namespace std;class alloc{}; templ原创 2001-11-15 11:47:00 · 1077 阅读 · 0 评论 -
STL程序设计实践四:简化输入和提高可维护性
STL程序设计实践四:简化输入和提高可维护性 STL存在于C++标准库的std空间中,当你使用std空间中的类型时必须在前面加上std::,否则必须在程序中加入如下语句:using namespace std; 把std引入到全局空间,这样就不用输入std::了,方便了我们输入。但当你要需要使用STL中的容器声名一个某种类型的对象时,如:vector vectstr原创 2001-11-10 18:36:00 · 775 阅读 · 0 评论 -
Obfuscated C++
你能预测下面这个程序的输出结果吗:#include using namespace std;namespace N { void g(int) { cout << "g(int)/n"; }};using namespace N;namespace N { void g(char){ cout << "g(char)/n"; }};int原创 2002-04-15 09:08:00 · 739 阅读 · 0 评论