c++
文章平均质量分 79
cyqllfh
挨踢民工
展开
-
关于static const int可以在 声明时初始化的思考
《Effective C++》中文第三版P14,有这样一个例子: class GamePlayer{ private: static const int NumTurns=5;//常量声明式 int scores[NumTurns];//使用该常量 ... }; 文中明确指出,NumTurns为声明式而非定义式。这与我们平时理解一个变量初始化赋值后即肯定被定原创 2013-10-28 16:39:41 · 1635 阅读 · 1 评论 -
小议 “重载”、“覆盖”、“隐藏”
重载--overload:同一作用域的函数,函数名相同,函数参数不同,在调用时可实现重载。同一个类的成员函数为一个作用域,继承来的函数与成员函数不在同一个作用域中。 #include using namespace std; class base { public: void f() { cout<<"void::f(void)"<<endl; } void原创 2013-11-25 18:55:17 · 443 阅读 · 0 评论 -
variant list--不同结点元素可能不同的链表
variant list同样基于简单链表,不同结点的元素不同但是为了能够链表元素的插入和读取,必须提供相同的接口,所以可以通过继承还保持相同的接口,通过多态来保证各个结点元素的输出。 这一举一个简单的例子--冰糖葫芦。冰糖葫芦是经典的小吃,传统的冰糖葫芦统一由山楂串联而成,类似于list,而在现实生活中我们经常能看到串橘子的、苹果的、甚至黄瓜的冰糖葫芦,这就类似于我们的chun原创 2013-11-11 17:04:51 · 925 阅读 · 0 评论 -
单节点可以存储可变数目元素的链表
chunk list是对链表list一种改变,经典的list通过一个结构体node实现封装固定数量的信息,即每个结点大小完全一样,所不同的是存储的值不同。chunk list要求存储可变数量的元素。这点可以通过stl一个经典的容器vector来实现。 #include #include #include #include #include template class Chunkli原创 2013-11-11 16:44:10 · 637 阅读 · 0 评论 -
并查集查找、合并查找
并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。 集就是让每个元素构成一个单元素的集合,也就是按一定顺序将属于同一组的元素所在的集合合并。 并查集的核心操作在于查找与合并,在查找的时候可以通过递归的方式实现路径的压缩。 #include #include template class U原创 2013-11-11 16:36:05 · 913 阅读 · 0 评论 -
B-树插入、删除
关于B-树基础知识可以参看: http://student.zjzk.cn/course_ware/data_structure/web/chazhao/chazhao9.3.2.1.htm B-树的数据结构如下: class TreeNode { private: int keynum; TreeNode* parent; TreeNode* ptr[m+1]原创 2013-11-11 15:29:59 · 1413 阅读 · 0 评论 -
string类的简单实现
string类是stl里面个一个基础类,同时也是一个容器。stl在string类里面塞了很多东西,大概有106个成员函数,以及大量的typedef、宏,晦涩难懂。本文只是简单通过面向对象的方法简单实现了一个string,以后会在此基础进行扩充和改进。 //MyString.h #ifndef MYSTRING_H #define MYSTRING_H #include #inclu原创 2013-11-11 17:13:31 · 944 阅读 · 2 评论 -
再论传值和传址
为什么“再”呢?哈哈~ 闲话少叙,上代码: #include using namespace std; void swap_a(int a, int b) { int temp = a; a = b; b = temp; } void swap_b(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } void swap原创 2013-11-25 17:36:50 · 546 阅读 · 0 评论