自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (1)
  • 收藏
  • 关注

原创 常用排序算法——冒泡排序

#include <iostream>using namespace std;template<class T>void bubble_sort(T *arr, int len){ T tmp; for(int i = 0; i < len - 1; ++ i) { for(int j = 0; j < len - 1 - i; ++ j)

2016-07-26 13:54:46 293

原创 C++不确定参数个数函数调用

INTSIZEOF 宏,获取类型占用的空间长度,最小占用长度为int的整数倍:#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )VA_START宏,获取可变参数列表的第一个参数的地址(ap是类型为va_list的指针,v是可变参数最左边的参数):#define va_start(ap,v) (

2016-07-22 14:40:49 1800

原创 复制构造函数的浅拷贝和深拷贝

C++ 拷贝构造函数分为浅拷贝和深拷贝两种,浅拷贝和深拷贝主要区别就是复制指针时是否重新创建内存空间。如果没有没有创建内存只赋值地址为浅拷贝,创建新内存把值全部拷贝一份就是深拷贝。浅拷贝在类里面有指针成员的情况下只会复制指针的地址,会导致两个成员指针指向同一块内存,这样在要是分别delete释放时就会出现问题,因此需要用深拷贝。 浅拷贝和深拷贝主要区别就是复制指针时是否重新创建内存空间。 如果没

2016-07-22 12:40:42 661

原创 静态多态入门示例

静态多态通过彼此单独定义但支持共同操作的具体类来描述共同性,也就是说必须存在必需的同名成员函数。 代码示例:#include <iostream>using namespace std;class Car{public: void act() const { cout << "car acting" << endl; }};class Bus{

2016-07-21 16:25:51 352

原创 动态多态入门示例之虚函数

多态实现一种非常有效的方式就是虚函数,通过基类的指针调用派生类的成员。 不多说了,上代码:#include <iostream>using namespace std;class Bird{public: virtual void fly() { cout << "Bird fly" << endl; }};class Duck : public

2016-07-21 15:51:27 333

原创 函数指针和指针函数

函数指针 函数指针就是指向函数的指针,像普通指针一样,函数指针也指向某种特定的类型,函数类型由其返回类型和形参表确定。 例如:int (*f)(int x);double (*ptr)(double x);因为()运算优先级高于*,所以指针变量外的()必不可少,后面的”形参列表“表示指针变量指向函数所带的参数列表,函数指针和它指向的函数的参数个数和类型必须一致,函数指针的类型和函数的返回值也必

2016-07-21 15:07:49 330

原创 数组指针和指针数组

数组指针是一个指针变量,它指向的是一个数组; 比如: int (*p)[2] 其含义是p是指向包含两个元素的数组的指针。 而指针数组是一个包含指针的数组,它的每个元素都是个指针,指向相同类型的不同对象; 比如: char *arr[] = {"abcd", "233333", "teststr"}; 其含义是定义了一个指针数组并对它进行了初始化,arr数组的每个元素都代表着一个字符指针

2016-07-21 14:24:34 403 1

原创 链式存储无向图的基本操作

链式存储无向图的基本操作

2016-07-20 21:29:49 1408

原创 无向图的邻接矩阵基本操作

无向图的邻接矩阵基本操作

2016-07-20 21:21:24 8431

原创 二叉树的非递归前序、后序遍历

题目来源: https://leetcode.com/problems/binary-tree-preorder-traversal/ https://leetcode.com/problems/binary-tree-inorder-traversal/ struct TreeNode { int val; TreeNode *left; TreeNode *ri

2016-07-20 11:34:33 311

原创 二叉树基本结构和算法

二叉树链式存储结构typedef struct BiTNode{ char data; BiTNode *lchild, *rchild;} BiTNode, *BiTree;二叉树创建(递归)void create_bitree(BiTree &T){ char value; cin >> value; if(value == '#')

2016-07-20 11:28:41 453

原创 模板使用入门示例

#include <iostream>using namespace std;template <class Type>Type max(Type arr[], int len){ if(len < 1) return -99999; Type ret = arr[0]; for(int i = 1; i < len; ++ i) {

2016-07-20 11:18:52 313

原创 快速排序算法实现

# include <iostream>using namespace std;void my_qsort(int arr[], int, int); int main() { int n; cin>>n; int *arr = new int[n]; for(int i = 0;i < n; ++i) cin >> arr[i]; m

2016-07-20 10:57:41 420

原创 Linux下的socket编程

Linux下的网络编程的含义 linux 网络编程是通过socket(套接字)接口实现,socket是一种文件描述符(可类比文件操作),socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种”打开—读/写—关闭”模式的实现,服务器和客户端各自维护一个”文件”,在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。常见 socket 分类

2016-06-28 15:03:22 3772

转载 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)

转载自:http://www.cnblogs.com/aiyelinglong/archive/2012/03/26/2418707.html带权图分为有向和无向,无向图的最短路径又叫做最小生成树,有prime算法和kruskal算法;有向图的最短路径算法有dijkstra算法和floyd算法。  生成树的概念:联通图G的一个子图如果是一棵包含G的所有顶点的树,则该子图称为G的生成

2016-03-21 22:20:48 794

转载 设计模式C++学习笔记之十九(State状态模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/21/2024117.html19.1.解释概念:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。main(),客户CLiftState,电梯状态抽象类CCloseingState,电梯门关闭

2016-03-17 23:02:26 405

转载 设计模式C++学习笔记之十八(Visitor访问者模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/21/2024099.html18.1.解释概念:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。main(),客户IVisitor,访问者接口CBaseVisitor,访问者实现类

2016-03-17 23:01:20 490

转载 设计模式C++学习笔记之十七(Chain of Responsibility责任链模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/20/2022988.html17.1.解释概念:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。main(),客户IWomen,发出请求者接口

2016-03-17 23:00:17 358

转载 设计模式C++学习笔记之十六(Observer观察者模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/20/2022975.html16.1.解释概念:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。main(),IObservable,被观察者接口CHanFeiZiObservabl

2016-03-17 22:59:09 331

转载 设计模式C++学习笔记之十五(Composite组合模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/19/2021638.html15.1.解释概念:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合的使用具有一致性。main(),客户CCorpNode,抽象基类,实现基本信息CBranchNo

2016-03-17 22:58:03 333

转载 设计模式C++学习笔记之十四(Iterator迭代器模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/19/2021600.html14.1.解释概念:提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。main(),客户IProject,产品接口CProject,产品类IIterator,

2016-03-17 22:52:35 323

转载 设计模式C++学习笔记之十三(Decorator装饰模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/18/2020254.html装饰模式,动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。13.1.解释main(),老爸ISchoolReport,成绩单接口CFourth

2016-03-17 22:51:09 267

转载 设计模式C++学习笔记之十二(Command命令模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/18/2020230.html命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。应该是一个比较简单的模式了。 12.1.解释 main(),客户 CInvoker,命

2016-03-17 22:50:08 328

转载 设计模式C++学习笔记之十一(Bridge桥梁模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/17/2019067.html桥梁模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化。实现分离的办法就是增加一个类,11.1.解释main(),客户IProduct,产品接口CHouse,房子CIPod,

2016-03-17 22:48:25 331

转载 设计模式C++学习笔记之十(Builder建造者模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/15/2017615.html建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。一段晦涩难懂的文字,实现创建不同表示的方法就是给创建的过程传入创建的参数。详细的还是看代码吧。10.1.解释main()

2016-03-17 22:44:14 337

转载 设计模式C++学习笔记之九(Template Method模板方法模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/15/2016619.html模板模式也是相当简单的一种模式,而且是比较常用的。模板模式是定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。cbf4life举的

2016-03-17 22:42:42 280

转载 设计模式C++学习笔记之八(Adapter适配器模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/13/2015335.html适配器模式,使用之处比较特殊,不属于常规设计模式,主要用于不同系统之间的处理。是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。也是一个比较简单的模式,直

2016-03-17 22:41:04 268

转载 设计模式C++学习笔记之七(AbstractFactory抽象工厂模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/13/2015288.html抽象工厂,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。对于工厂方法来说,抽象工厂可实现一系列产品的生产,抽象工厂更注重产品的组合。看代码:7.1.解释main(),女娲

2016-03-17 22:37:47 296

转载 设计模式C++学习笔记之六(Facade门面模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/12/2014186.htmlFacade门面模式,也是比较常用的一种模式,基本上所有软件系统中都会用到。 GOF 在《设计模式》一书中给出如下定义:为子系统中的一组接口提供一个一致的界面, Facade 模式定义了一个高层接口,这个接口使得这一子系统更加

2016-03-17 22:35:18 439

转载 设计模式C++学习笔记之五(Factory Method工厂方法模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/11/2013033.html工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式

2016-03-17 22:32:23 308

转载 设计模式C++学习笔记之四(Multition多例模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/11/2011966.html多例模式,这个在GOF的模式设计里没有提到,但在实际工作中确实会用到。更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com。4.1.解释main(),客户略说明:和

2016-03-17 22:31:05 692

转载 设计模式C++学习笔记之三(Singleton单例模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/09/2010876.html单例模式看起来也蛮简单的,就是在系统中只允许产生这个类的一个实例,既然这么简单,就直接贴代码了。更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com。3.1.解释main(),大臣

2016-03-17 22:29:13 283

转载 设计模式C++学习笔记之二(Proxy代理模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/08/2009965.html代理,一看名字就知道这只是个中介而已,真实的执行者在代理的后面呢。cbf4life在他的书里提的例子也很有趣,更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com。现在贴代码,以方便随用随取。

2016-03-17 22:26:27 432

转载 设计模式C++学习笔记之一(Strategy策略模式)

博文很精彩,为方便个人学习特转载,地址:http://www.cnblogs.com/wanggary/archive/2011/04/07/2008796.html无意中,从网上下到一本电子书《24种设计模式介绍与6大设计原则》,很好奇这里有24种设计模式,印象中GOF写的《设计模式》(Design Patterns),好像只有23种吧。运行起来一看,还真挺吸引咱的,里面提到的例子都很有

2016-03-17 22:23:56 381

转载 友元函数、友元类总结

转载自:http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/04/2535305.html1.友元函数的简单介绍1.1为什么要使用友元函数在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数。具体来说:为了使其他类的成员函

2016-03-17 22:07:40 392

原创 sqlite基本操作补充

string path = MGBundle::mainBundle()->userFilePathWithFileName("brush_data.db"); sqlite3 *pDB; char *errMsg; if(!Utility::isFileORDirExist(path)) { int res = sqlite3_open(path.

2016-01-14 21:59:14 607

原创 sqlite3基本操作

string path = "device.db"; sqlite3 *pDB; sqlite3_stmt *stmt; char *errMsg; if(!Utility::isFileORDirExist(path)) {//判断数据库文件是否已经存在,不存在是创建数据库和数据库表 int res = sqlite3_open(path.c_

2016-01-02 21:48:39 692

原创 《The C++ Programming Language》摘抄与总结——类型与声明

在C++的实际编程中,当然我想也不止C++如此,变量的使用需要注意一下内容:让变量保持较小的作用域,“较小”的含义是一个变量的作用域要适当;不要在一个作用域和他外围的作用域采用同样名字,因为如果在不同的作用域使用同样带有含义的变量名称,会降低代码的可阅读性;在一个声明中(只)声明一个名字,即不同的变量(或其他的量)不要在同一处使用类似于int a, b, c这样的声明方式;让常用的和局

2015-12-31 23:04:13 520

原创 《The C++ Programming Language》摘抄与总结——关于

声明:文章内容的基本来源于《The C++ Programming Language》,我只是想在把我从书中看到的,了解到的做以记载,同时也算是给博友们做一下分享吧。必须要说明的是这是我有一次从头学习C++的一次经历,有许多东西以前我已经接触过,也有许多内容被我以前给忽略了,甚至也有很多内容我以前闻所未闻,或者知之甚少的。有许多人总是说学习技术要写技术博客,我一直都认为自己的水

2015-12-31 22:40:14 943

转载 声明和定义的区别(C++)

声明和定义的区别(C++) 转自:http://blog.csdn.net/sjxbf/article/details/6310150①变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。②变量声明:用于向程序表明变量的类型和名字。③定义也是声明:当定义变量时我们声明了它的类型和名字。④extern关键字:通过使用extern关键字声明

2015-12-30 22:52:16 535

空空如也

空空如也

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

TA关注的人

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