C++
文章平均质量分 69
逝水VS无痕
贵有恒,何必三更起五更勤;最无益,只怕是一日曝而十日寒。
展开
-
C++中小数点引用和箭头的区别
首先介绍一下C++中的结构。对于一个结构来说,struct MyStruct{int member_a;};如果有个变量MyStruct s,那么使用其中的成员元素时可以用s.member_a = 1;如果采用指针方法访问,比如MyStruct * ps,那么同样的访问就必须使用如下形式:(*ps).member_a = 1;或者ps->member_a转载 2015-05-08 15:48:13 · 755 阅读 · 0 评论 -
求二叉树的高度,叶子节点个数,第K层结点个数,求祖先结点问题
求二叉树的高度,叶子节点个数,第K层结点个数,求祖先结点问题原创 2015-07-16 23:35:47 · 1624 阅读 · 0 评论 -
带环单链表及单链表的相交
带环单链表的概念:当单链表的尾指针指向了链表上任一非尾结点时,即生成了一个带环单链表。原创 2015-07-16 10:29:24 · 518 阅读 · 0 评论 -
单链表的创建及各种操作
一、单链表的创建 单链表创建的方法有两类:一种是直接使用结构体定义Node结点结构,通过typedef 申明一种链表结构,如:typedef Node* PList;,从而实现链表的创建。 另一种,通过使用C++模板类来创建SList类,从而实现单链表。 第一种代码如下:typedef int DataType;struct Node原创 2015-07-15 14:54:03 · 577 阅读 · 0 评论 -
关于虚函数、虚继承和虚表
一、虚函数 首先,虚函数的定义为在函数前添加关键字virtual。然后,之所以定义虚函数,是为了实现语言的多态性的特点。 虚函数里面有纯虚函数的玩意。通过直接在虚函数后面添加= 0来实现,举例如下: virtual void (*Fun)() = 0; 应该注意的是,当一个类中出现了至少一个纯虚函数时,这个类就成为了传说中的抽原创 2015-07-13 11:50:27 · 955 阅读 · 0 评论 -
静态库与动态库详细剖析
首先,静态库和动态库的全称为静态链接库和动态链接库。顾名思义,静态库和动态库都是作用于编译过程的链接阶段(编译过程分为预编译、编译、汇编和链接)。 库是一种可执行代码的二进制文件。它是一种可复用的代码,在现实的编程中,每个程序都依靠底层的库。静态库的后缀为(.a和.lib),动态库的后缀为(.so和.dll)。静态库: 何为静态库。它是在链接过程中,原创 2015-07-11 11:29:48 · 516 阅读 · 0 评论 -
关于Boost库和STL标准模板库
一、关于STL 首先,关于stl,最近也看了不少关于stl的博客。往大概的讲,stl即一种标准的模板库,它存在的目的即是为了实现代码的服用性,即为了提高敲代码的效率,解放编程人员的代码生产率。往细的讲,stl标准模板库是由:空间配置器,迭代器,容器,算法,仿函数和配接器这六大部分组成。至于stl的发展历史,则是一个复杂的故事。二、关于boost库 首先,Boost库是为C+原创 2015-07-10 23:26:25 · 950 阅读 · 0 评论 -
编写auto_ptr感
首先,上自己编写的auto_ptr#includeusing namespace std;templateclass my_auto_ptr{public: //构造函数 my_auto_ptr() :ptr(NULL) {} my_auto_ptr(const T *x) :ptr((T *)x) {} //拷贝构造函数原创 2015-07-10 16:47:13 · 368 阅读 · 0 评论 -
String类的编写
#include#includeusing namespace std;class String{public: //当不传值构造时,默认为一个‘\0’ String() :ptr(new char('\0')) {} String(const char *x) :ptr(new char[strlen(x) + 1])原创 2015-07-10 16:33:30 · 503 阅读 · 0 评论 -
关于2进制思想的趣味题。
1.有一条金条,一个人给一个老板打工7天,每天给那人金条的七分之一,把金条最少切几次才可按时将工资发放?2.现有1000个苹果,10个盒子,现在要你将1000个苹果装入10个盒子中,使得用户无论购买多少个苹果(1-1000),都能由若干个盒子拼装而成(卖的时候是整个盒子卖,不能拆盒子的包装)怎么装??3.有1000瓶液体,无色无味,外表完全一样,其中一瓶是毒药,有10条警犬,警原创 2015-06-30 16:39:48 · 4977 阅读 · 2 评论 -
析C++异常处理
一、异常处理的结构: 首先基本结构为try,catch,throw。其中try和catch必须紧挨在一起。try后面的花括号内为查找异常的代码段。catch后面中括号内为抛出异常值的类型,也可以为一个带类型值的定义变量(因为有时候异常处理语句会使用到抛出的变量的值)。其后的花括号内为异常处理的语句。throw会抛出一个异常的带类型的变量,并且会去寻找程序中想匹配的catch块,如果找不到原创 2015-05-06 08:41:33 · 390 阅读 · 0 评论 -
内联函数定义及实质总结
一、内联函数的定义: 1、内联函数定义可在函数头前面或者返回值类型后面加上关键字inline。 如: inline int max(int a, int b) { return a >= b?a:b; }原创 2015-05-05 09:54:52 · 2918 阅读 · 0 评论 -
C++中的静态成员变量的定义和初始化
#include #include class Test{public: static int i;};int Test::i = 0;int main(){ Test a; std::cout Test::i << std::endl; std::cout a.i << std::endl;转载 2015-05-12 20:46:21 · 730 阅读 · 0 评论 -
快排的两种写法
经典算法之快速排序原创 2015-07-19 11:10:48 · 2510 阅读 · 0 评论