用两个栈模拟队列的思想就是“倒水思想”,这里我们用自定义类型模拟出线性表,再用线性表做容器实现栈的数据结构,最后用栈来实现队列,代码如下:#include<iostream>
#include<string>
#include<cassert>
struct__TrueType//类型萃取
{
boolGet()
{
re..
分类:
其他好文 时间:
2016-04-09 01:49:02
阅读次数:
219
之后我在整理之后会把类型萃取也放着这个文章里面,我自己还是满容易混淆的,经常分不清、 模版的模板参数主要使用在类的类成员也是个模板类,当你想只输入一个模板参数,就可以同时对类内的其他类成员传入相同的模板参数的时候就可以使用咯 这个就是模板的模版参数的一个简单实现,用来实现类的类成员和该类模板使用类型 ...
分类:
其他好文 时间:
2016-04-06 16:50:15
阅读次数:
141
在声明变量,函数,和大多数其他类型实体的时候,C++要求我们使用指定的类型。然而,有许多代码,除了类型不同之外,其余部分看起来都是相同的,比如,下面这个例子:boolIsEqual(intleft,intright)
{
returnleft==right;
}
boolIsEqual(conststring&left,conststring&..
分类:
编程语言 时间:
2016-04-05 20:15:37
阅读次数:
286
废话不多说,上来贴代码最实在,哈哈! 以下代码量有点多,不过这都是在下一手一手敲出来的,小巧好用,把以下代码复制出来,放到相应的hpp文件即可,VS,GCC下均能编译通过 接下来是traits库的完整代码 ...
分类:
编程语言 时间:
2016-03-31 23:20:12
阅读次数:
277
类型萃取在模板这里主要就是对于模板的不同类型的实例化有不同的方案这样可以提高效率等比如下面的顺序表在扩容时的拷贝对于没有含有指向空间的指针的类如int自动使用memcpy()对于含有指向空间的指针的类如string就自动一个一个的赋值防止浅拷贝导致两个指针指向同一空间析构两..
分类:
编程语言 时间:
2016-03-29 19:40:53
阅读次数:
339
一般情况下我们在对类模版中的成员函数进行构建时会经常对一些数据进行复制拷贝,而通常情况下我们都不提倡用memcpy进行拷贝,因为在类模版中所传进来的类型可以是内置类型也可以是非内置类型,除非你在成员函数中使用memcpy前进行类型萃取,否则它所带来的副作用的后果也是很..
分类:
其他好文 时间:
2016-03-23 23:44:45
阅读次数:
297
C++怎样识别一个对象的类型?
typeid可以获取到一个类型的名称,但是不能拿来做变量的声明。
【POD类型萃瓤
//
//POD:plainolddata平凡类型(无关痛痒的类型)--基本类型
//指在C++中与C兼容的类型,可以按照C的方式处理。
//#include<iostream>
#include<string>..
分类:
其他好文 时间:
2016-03-16 19:30:18
阅读次数:
152
类型萃取是一种常用的编程技巧,其目的是实现不同类型数据面对同一函数实现不同的操作,如STL中cout的实现,它与类封装的区别是,我们并不用知道我们所调用的对象是什么类型,类型萃取是编译器后知道类型,先实现,而类的封装则是先定义类型,后实现方法。在这里我们可以用模板..
分类:
编程语言 时间:
2016-03-16 01:23:38
阅读次数:
288
//类型萃取
#pragmaonce
#include<iostream>
usingnamespacestd;
struct__TrueType//定义类普通类型(基本类型的)
{
boolGet()
{
returntrue;
}
};
struct__FalseType//定义类非基本类型
{
boolGet()
{
returnfalse;
}
};
template<class_Tp>//模..
分类:
编程语言 时间:
2016-01-01 23:15:25
阅读次数:
449
#pragmaonce//头文件
#include<iostream>
#include<string.h>
#include<list>
#include"TypeTraits.hpp"//类型萃取
#include<stdarg.h>
usingnamespacestd;
structSaveAdapter//保存适配器基类
{
virtualvoidsave(constchar*fmt,...)=0;//定义可变..
分类:
编程语言 时间:
2016-01-01 23:14:30
阅读次数:
523