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