自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hao先森的专栏

贵有恒,何必三更起五更勤;最无益,只怕是一日曝而十日寒。

  • 博客(16)
  • 收藏
  • 关注

原创 网络编程之udp

客户端:#include#includeusing namespace std;#pragma comment(lib,"ws2_32.lib")#define PORT 1688#define IP "127.0.0.1"int main(){ INT Ret; WSADATA wsaData; if ((Ret = WSAStartup(MAKEWORD(2, 2),

2015-07-27 00:35:03 385

原创 快排的两种写法

经典算法之快速排序

2015-07-19 11:10:48 2485

原创 求二叉树的高度,叶子节点个数,第K层结点个数,求祖先结点问题

求二叉树的高度,叶子节点个数,第K层结点个数,求祖先结点问题

2015-07-16 23:35:47 1598

原创 二叉树的创建以及二叉树的4种遍历方法

一、二叉树的创建:       首先,二叉树的创建常见的有根据先序遍历(虚空结点)、后序遍历(虚空结点)和层次遍历(虚空结点)三种方法 + 先方法一:通过使用模板构建二叉树。

2015-07-16 15:16:26 738

原创 带环单链表及单链表的相交

带环单链表的概念:当单链表的尾指针指向了链表上任一非尾结点时,即生成了一个带环单链表。

2015-07-16 10:29:24 500

原创 单链表的创建及各种操作

一、单链表的创建        单链表创建的方法有两类:一种是直接使用结构体定义Node结点结构,通过typedef 申明一种链表结构,如:typedef  Node* PList;,从而实现链表的创建。        另一种,通过使用C++模板类来创建SList类,从而实现单链表。       第一种代码如下:typedef int DataType;struct Node

2015-07-15 14:54:03 556

原创 智能指针之shared_ptr

当我们使用指针指向一块我们自己开辟的内存空间时,必须要再执行完所有操作之后进行释放操作。但是,且不说我们可能出现的疏忽,当在执行操作不当时,还没有进行完执行操作程序就发生了错误,此时程序自动结束,这时,程序跳过了释放前面开辟的空间的操作,从而造成了内存泄露。所以,为了规避这些错误的出现,我们便引入了智能指针shared_ptr,利用类的析构函数在程序结束之前自动调用的特点。利用shared_ptr

2015-07-14 22:21:41 405

原创 智能指针之auto_ptr

一、auto_ptr        auto_ptr是一种简单的智能指针,它的基本原理就是利用类对象在函数结束时自动调用类里的析构函数。它的作用就是动态地分配对象,在对象不需要时自动地进行清理。

2015-07-14 21:01:59 409

原创 基于Windows的Socket编程

//服务器:#include#includeusing namespace std;#pragma comment(lib,"ws2_32.lib")int main(){ INT Ret; WSADATA wsaData; //首先,建立一个WSADATA结构,通常用wsaDataWSADATA wsaData; //然后,调用WSAStartup函

2015-07-14 16:50:37 407

原创 关于虚函数、虚继承和虚表

一、虚函数        首先,虚函数的定义为在函数前添加关键字virtual。然后,之所以定义虚函数,是为了实现语言的多态性的特点。        虚函数里面有纯虚函数的玩意。通过直接在虚函数后面添加= 0来实现,举例如下:        virtual void (*Fun)() = 0;        应该注意的是,当一个类中出现了至少一个纯虚函数时,这个类就成为了传说中的抽

2015-07-13 11:50:27 930

原创 关于main函数的参数

因为main函数是主函数,没有什么函数可以调用main函数,所以按理说,main函数没必要设置形参。但是C语言规定了,main函数带有两个形参。并且,第一个形参必须为int类型,一般都命名为argc;另一个形参必须为char*的指针数组,一般申明为char *argv[ ]。        那么,为什么要设置这两个形参呢。因为在系统调用的时候,可以在调用生成的可执行文件时,在后面添加一些参数,

2015-07-13 11:40:41 488

原创 C语言32个关键字总结以及C++几个常用关键字

C语言的32个关键字

2015-07-11 14:12:02 3903

原创 静态库与动态库详细剖析

首先,静态库和动态库的全称为静态链接库和动态链接库。顾名思义,静态库和动态库都是作用于编译过程的链接阶段(编译过程分为预编译、编译、汇编和链接)。        库是一种可执行代码的二进制文件。它是一种可复用的代码,在现实的编程中,每个程序都依靠底层的库。静态库的后缀为(.a和.lib),动态库的后缀为(.so和.dll)。静态库:        何为静态库。它是在链接过程中,

2015-07-11 11:29:48 497

原创 关于Boost库和STL标准模板库

一、关于STL    首先,关于stl,最近也看了不少关于stl的博客。往大概的讲,stl即一种标准的模板库,它存在的目的即是为了实现代码的服用性,即为了提高敲代码的效率,解放编程人员的代码生产率。往细的讲,stl标准模板库是由:空间配置器,迭代器,容器,算法,仿函数和配接器这六大部分组成。至于stl的发展历史,则是一个复杂的故事。二、关于boost库    首先,Boost库是为C+

2015-07-10 23:26:25 921

原创 编写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 354

原创 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 492

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除