摘要:
代码如下: 1 #ifndef QUEUE_H 2 #define QUEUE_H 3 #include "Exception.h" 4 #include 5 6 class EmptyQueueException : public Exception 7 { 8 public:... 阅读全文
posted @ 2014-10-05 19:43
(@_@)ゞ
阅读(204)
评论(0)
推荐(0)
摘要:
注意以下几点:1.Stack是一种适配器,底层以vector、list、deque等实现2.Stack不含有迭代器在本例中,我添加了几项功能,包括不同类型stack之间的复制和赋值功能,可以实现诸如Stack >和Stack >之间的复制和赋值,这主要依靠成员函数模板来实现。为了更方便的实现以上功能... 阅读全文
posted @ 2014-10-05 18:49
(@_@)ゞ
阅读(234)
评论(0)
推荐(0)
摘要:
下面提供三个函数的实现代码,这三个代码的共同点是:1.遇到错误,抛出异常2.出现异常时,把之前构造的对象全部销毁所以,这三个函数要么成功,要么无任何副作用。使用异常来通知使用者,所以在catch块中,处理完异常后要将异常再次向外抛出。代码如下: 1 #ifndef UNINIT_H 2 #defin... 阅读全文
posted @ 2014-10-05 17:59
(@_@)ゞ
阅读(216)
评论(0)
推荐(0)
摘要:
我们只需改动allocate和deallocate,来实现自己的内存分配策略即可。代码如下: 1 #ifndef ALLOCATOR_H 2 #define ALLOCATOR_H 3 4 #include 5 #include 6 7 template 8 class Allocato... 阅读全文
posted @ 2014-10-05 17:40
(@_@)ゞ
阅读(224)
评论(0)
推荐(0)
摘要:
自定义迭代器必须提供iterator_traits的五种特性,分别是迭代器类型、元素类型、距离类型、指针类型与reference类型。这里我们继承标准库提供的iterator即可。代码如下: 1 #ifndef ITERATOR_H 2 #define ITERATOR_H 3 #include ... 阅读全文
posted @ 2014-10-05 17:35
(@_@)ゞ
阅读(222)
评论(0)
推荐(0)
摘要:
采用自定义的operator运算符实现自己的内存分配策略,在某些时候可以提高程序的效率。C++中的new运算符,具体工作流程如下:1.调用operator new申请原始内存2.调用place new表达式,执行类的构造函数3.返回内存地址而delete操作符的工作是:1.调用对象的析构函数2.调用... 阅读全文
posted @ 2014-10-05 17:25
(@_@)ゞ
阅读(132)
评论(0)
推荐(0)
摘要:
功能尚不完全, 存在缺陷。定义Vector vec(10, 10)会报出异常, 原因是无法识别10是int型还是iterator型。注意几点:分配内存不要使用new和delete,因为new的同时就把对象构造了,而我们需要的是原始内存。所以应该使用标准库提供的allocator类来实现内存的控制。当... 阅读全文
posted @ 2014-10-05 17:21
(@_@)ゞ
阅读(360)
评论(0)
推荐(0)
摘要:
Exception.h 1 #ifndef EXCEPTION_H 2 #define EXCEPTION_H 3 #include 4 #include 5 6 7 class Exception : public std::exception 8 { 9 public:10 ex... 阅读全文
posted @ 2014-10-05 17:04
(@_@)ゞ
阅读(217)
评论(0)
推荐(0)

浙公网安备 33010602011771号