志存高远

专注于C/C++

数据结构与算法-----总结篇

一、数据结构 程序设计=数据结构+算法 1.逻辑结构 1)集合:元素之间没有联系。 2)线性结构:元素之间存在前后顺序。 3)树形结构:元素之间存在一对多的父子关系。 4)图状结构:元素之间存在多对多的映射关系。 2.物理结构 1)顺序结构:用连续的空间存放数据元素。 优点:便于随机访问。 缺点...

2015-06-17 17:09:30

阅读数:2621

评论数:1

指针函数与函数指针的区别

在学习过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数...

2015-06-25 11:50:18

阅读数:517

评论数:0

数据结构与算法-----双向线性链表

链表 1.基本特征:由一系列内存中不连续的节点组成,每个节点除了保存数据以外,还需要保存其前后节点的地址——双向链表。 2.基本操作 1)追加 2)插入 3)删除 4)遍历 5)伪随机访问 示例:使用C++实现双向链表类,并演示结果;#include <iostream>...

2015-06-18 17:35:42

阅读数:950

评论数:0

数据结构与算法-----队列-使用数组(顺序结构)实现

队列1.基本特征:先进先出 2.基本操作:从后端(rear)压入(push),从前端(front)弹出(pop) 3.实现要点:初始化空间、从后端指针压入,从前端指针弹出, 循环使用,判空判满实践1:使用C++语言实现...

2015-06-18 14:40:37

阅读数:682

评论数:0

数据结构与算法-----堆栈-使用数组(顺序结构)实现

堆栈1.基本特征:后进先出 2.基本操作:压入(push),弹出(pop) 3.实现要点:初始化空间、栈顶指针、判空判满 实践:使用C++语言实现堆栈类,进行示例演示并且根据此堆栈类实现进制的转换。“`include using namespace std; class Stack { ...

2015-06-17 17:40:27

阅读数:1222

评论数:0

C++【重载,覆盖,隐藏三者的区别】

重载与覆盖: 成员函数被重载的特征: (1)相同的范围(在同一个类中); (2)函数名字相同; (3)参数不同; (4)virtual 关键字可有可无。 覆盖是指派生类函数覆盖基类函数,特征是: (1)不同的范围(分别位于派生类与基类); (2)函数名字相同; (3)参数相同; (4)基类函数必须...

2015-06-16 13:38:34

阅读数:652

评论数:0

C++【多重继承和虚继承】

多重继承和虚继承1)定义 子类同时拥有两个或两个以上的基类,同时继承了所有基类的属性和行为。 销售员 经理 \ / 销售经理 汽车 客用特性 商用特性 \ | / 公共汽车2)内存结构 按照继承表的顺序,从低到高地址一次排列各...

2015-06-16 12:02:54

阅读数:545

评论数:0

C++【浅谈虚析构函数】

虚析构函数 将基类的析构函数定义为虚函数,delete一个指向子类对象的基类指针,实际被执行的就是子类的析构函数,而子类的析构函数又会自动调用基类的析构函数,从而保证子类和基类中所有的资源都被析构干净。示例代码#include <iostream> using namespace s...

2015-06-16 11:16:16

阅读数:522

评论数:0

C++【子类的构造和析构】

子类的构造和析构 1.如果在子类的构造函数的初始化表中没有显式地指明基类部分如何初始化,那么系统就以以无参的方式初始化子类对象中的基类子对象,前提是基类类型支持无参构造。否则,就根据所指定的构造函数和参数对基类部分进行初始化。 2.构造和析构顺序 构造:基类->成员->子类 析...

2015-06-15 10:11:34

阅读数:1330

评论数:0

C++【静态成员】

关于静态成员的总结: 1.静态成员是属于类的,而非静态成员是属于对象的。 2.静态成员变量的定义和初始化只能在类的外部进行,而不能放在构造函数中。 3.静态成员变量在该类的多个实例对象间共享。 4.访问静态成员可以通过类也可以通过对象,但是访问非静态成员只能通过对象。 5.静态成员函数只能访问静态...

2015-06-12 13:25:49

阅读数:428

评论数:0

C++【操作符重载】

操作符重载的基本概念 c1-(c2+c3) c1.sub (c2.add (c3)); 1.操作符和操作符函数 1)双目操作符:+-*/%...,+=/-=...,> L#R -> L.operator#(R),左调右参    -> ::operator#(L,R),左一右二 2...

2015-06-12 11:24:59

阅读数:491

评论数:0

C++【构造函数与析构函数基础知识以及构造析构顺序】

一.构造函数 class 类名 {   类名 (形参表) : 初始化表 {     函数体;   } }; 当该类的对象被创建时,相应类型的构造函数被自动执行。创建对象的同时提供构造实参表,与构造函数的形参匹配。 1)构造函数可以重载 2)缺省构造函数 如果一个类中没有定义任何构造函数,那么系统就...

2015-06-05 13:24:39

阅读数:451

评论数:0

C++中const、volatile、mutable的用法

const修饰普通变量和指针 const修饰变量,一般有两种写法: const TYPE value; TYPE const value; 这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎...

2015-06-04 11:01:57

阅读数:459

评论数:0

跟我一起Makefile

什么是makefile?或许非常多Winodws的程序猿都不知道这个东西,由于那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序猿,makefile还是要懂。这就好像如今有这么多的HTML的编辑器,但假设你想成为一个专业人士,你还是要了解HTML的标...

2015-06-04 10:59:20

阅读数:561

评论数:0

C语言位运算符:与、或、异或、取反、左移和右移

C语言位运算符:与、或、异或、取反、左移和右移 语言位运算符:与、或、异或、取反、左移和右移 位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型...

2015-06-04 10:57:07

阅读数:427

评论数:0

struct和union计算方法

规则: 1,对于union,对齐的大小是最大的基本元素的对齐大小;对象的大小必须是该基本元素大小的整数倍; 2,对于struct,对齐的大小也是最大的基本元素的对齐大小,对象的大小需要考虑元素的对齐,并且需要是最大基本元素的整数倍;同时有#pragma pack修饰的情况,关于struct请详...

2015-06-04 10:54:20

阅读数:693

评论数:0

创建和使用库,包括静态库和动态库(共享库)

在Linux下进行C/C++开发经常要创建和使用库,包括静态库和动态库(共享库)。 静态库文件的扩展名是.a,其命名规则是libxxx.a, 动态库的扩展名是.so,其命名规则是libxxx.so。 静态库和动态库在链接调用的是都是 -lxxx。 静态库在程序编译时会被连接到目标代...

2015-06-04 10:52:08

阅读数:1413

评论数:0

编译时所需的文件(包含头文件和库文件)使用方法

使用头文件include时候,如果.h文件和.c文件不在一个目录,可以使用-I选项指定头文件目录 实例:cc -o main mian.c -I/home/aop/include  include目录里面包含了所需的.h文件 使用库文件时候添加路径的方法 -L.指当前目录中的库文件 -L...

2015-06-04 10:49:37

阅读数:982

评论数:0

运算符*和指针以及前++、后++总结

*p++,由于++和*同优先级,结合方向自右而左,等价于*(p++)。 *(p++)与*(++p)作用不同。若 p 的初值为 a,则*(p++)等价 a[0],*(++p)等价 a[1]。 (*p)++表示 p 所指向的元素值加 1。

2015-06-04 10:43:42

阅读数:499

评论数:0

使用DB2编译嵌入式sql代码

工作中公司工程一般都有已经写好的makefile文件,并且都比较复杂,以前不知道在linux系统下编译sql文件,自己简单总结了一下: a.先编写test.sqc文件 b.连接DB2数据库,db2 connect to DBNAME user DBUSER using DBPWD c.使用命...

2015-06-04 10:34:32

阅读数:1357

评论数:0

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