看的概念挺朦胧的,没有明确好双链表到底需要哪些方法,其实针对这种结构应该可以写很多方法,并没有什么特定标准。
不过真是只看不练不行啊,一下手各种错误,各种溢出
#include
using namespace std;
template struct Node
{
T value;
Node* pre;
Node* next;
};
template class...
分类:
编程语言 时间:
2014-10-10 15:36:44
阅读次数:
247
error LNK2019: 无法解析的外部符号 对‘operator const&)’未定义的
分类:
其他好文 时间:
2014-10-09 14:46:48
阅读次数:
222
设计模式之6大原则一、设计模式6大原则名称解释0、单一职责原则(SRP)就一个类而言,应该仅有一个引起它变化的原因。一、"开放-封闭"原则(OCP)在软件设计模式中,这种不能修改,但可以扩展的思想也是最重要的一种设计原则。即软件实体(类、模板、函数等等)应该可以扩展,但是不可修改。【通俗】:设计的时...
分类:
其他好文 时间:
2014-10-09 13:56:13
阅读次数:
202
编译一个游戏库时,遇到个奇怪的问题。一个模板函数,形参是按值传入的。编译时实参是内存对齐过的,无法通过,引发类似下面的错误:error C2719: '_Val': formal parameter with __declspec(align('16')) won't be aligned经查,vs...
分类:
其他好文 时间:
2014-10-07 03:26:02
阅读次数:
292
本博文主要讨论函数模板与类模板以及其简单应用。1)、作用:函数模板和类模板都可以看做是一种代码产生器,往里面放入具体的类型,得到具体化的函数或者class。2)、编译(分为两步):a):实例化之前,先检查模板本身语法是否正确;b):根据 函数调用或者类模板调用,先去实例化模板代码,产生具体的函数/类...
分类:
编程语言 时间:
2014-09-30 04:01:12
阅读次数:
401
这段时间对STL比较痴迷,遂做了些许研究,今天把原来写过的快速排序算法用模板函数重新写了一下,把代码贴出来分享一下
有两个版本,版本二可以传入比较器,自己定义排序规则
快速排序算法思路:
1)从序列中选出一个元素作为基准;
2)重排序列,所有比基准小的元素位于基准左侧,比基准大的元素位于基准右侧,和基准相等的元素位于任意一侧,此过程称为分组;
3)以递归的方式对小于基...
分类:
其他好文 时间:
2014-09-18 23:51:04
阅读次数:
258
1 函数模板
template
T compare(const T & v1,const T &v2)
{
return ..
}
编译器承担了为每种类型编写函数的单调工作.
inline
template inline T min(const T&,const T&)
2 类模板
template
class Q{
T fun();
}...
分类:
编程语言 时间:
2014-09-16 23:46:41
阅读次数:
281
无疑是STL 中最大的一个头文件,它是由一大堆模板函数组成的。下面列举出中的模板函数:adjacent_find / binary_search / copy / copy_backward / count/ count_if / equal / equal_range / fill / fill_...
分类:
其他好文 时间:
2014-09-14 20:43:37
阅读次数:
280
我们在编写C++类库时,为了隐藏实现,往往只能忍痛舍弃模版的强大特性。但如果我们只需要有限的几个类型的模版实现,并且不允许用户传入其他类型时,我们就可以将实例化的代码放在cpp文件中实现了。然而,当我们又需要针对特定类型进行模版偏特化时,由于gcc编译器不允许直接在类中进行偏特化声明,所以正确的写法...
分类:
编程语言 时间:
2014-09-04 00:02:17
阅读次数:
391
16.4 编写行为类似标准库find算法的模板。函数需要两个模板类型参数,一个表示函数的迭代器参数,另一个表示值的类型。使用你的函数在一个vector和一个list中查找给定值。#include#include#include#include#includeusing namespace std;t...
分类:
其他好文 时间:
2014-08-31 21:22:21
阅读次数:
238