自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

转载 虚函数表

C++ 虚函数表解析前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议

2014-08-27 11:13:44 424

转载 范式

第一范式 1NF属性不可再分割,符合原子性。没什么好解释的,地球人都明白  第二范式 2NF在1NF的基础上:不允许出现有field部分依赖于主键(或者说依赖于主键的一部分)官方说法:数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即

2014-08-26 11:38:43 393

转载 哈希表

哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。实际上,这只需要几条机器指令。对哈希表的使用者一一人来说,这是一瞬间的事。哈希表运算得非常快,在计算机程序中,如果需要在一秒种内查找上千条记录通常使用哈希表(例如拼写检查器)哈希表的速度明显比树快,树的操

2014-08-25 14:49:39 484

原创 c++指针

int *p[3];

2014-08-25 09:13:45 370

原创 有关信号量的讨论

信号量(Semaphore)属于内核对象,是与

2014-07-08 09:46:12 437

原创 有关死锁的讨论

死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。

2014-07-07 17:52:01 521

原创 互斥对象、事件对象与关键代码段

互斥对象、事件对象与关键代码段是windows三种常见的线程

2014-07-07 17:06:42 524

原创 利用关键代码段实现线程同步

关键代码段(临界区)工作在用户方式下, 关键代码段(临界区)是指一个小代码段,在代码能够执行前,它必须独占对某些资源的访问权。

2014-07-07 16:28:38 554

原创 利用事件对象实现线程同步

事件对象也属于内核对象,允许任意数目的线程对资源拥有同步访问的权限。

2014-07-07 11:22:43 1365

原创 利用互斥量实现线程同步

互斥量(mutex)属于内核对象,它能够确保线程拥有

2014-07-07 10:21:42 878

转载 windows线程创建函数

CreateThread是Windows的API函数(SDK函数的标准形式,直截了当的创建方式,任何场合都可以使用),提供操作系统级别的创建线程的操作,且仅限于工作者线程。不调用MFC和RTL的函数时,可以用CreateThread,其它情况不要轻易。在使用的过程中要考虑到进程的同步与互斥的关系(防止死锁)。线程函数定义为:DWORD WINAPI _yourThreadFun(LPVOID

2014-07-07 09:01:10 622

原创 常见排序算法总结

(部分内容摘自其他网络资料)插入排序1.直接插入排序    原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,最终将所有无序区元素都移动到有序区完成排序。    是否为稳定排序:是 最坏时间复杂度为:O(n^2);最好为:O(n) 空间复杂度为:O(1)void InsertSort(int L[], int leng

2014-06-27 15:45:40 471

原创 菜单

菜单栏、工具栏和状态栏是组成Windows程序图形界面的三个主要

2014-06-12 16:42:34 610

原创 MFC文本编程

应该说计算机对字符和文字的处理是最多了,在

2014-06-12 11:41:00 849

原创 MFC绘图

在windows编程中,可以

2014-06-10 21:07:05 629

原创 MFC消息映射

从孙鑫的《VC++深入详解》我们可知Windows程序是

2014-06-09 21:04:23 554

原创 第一个MFC程序

上一次和大家在一起探讨了用VS创建

2014-06-08 20:04:59 3253

原创 用VS手动建立控制台项目和win32项目的区别

这两天一直在学习windows程序设计,

2014-06-07 12:20:22 4265

原创 第一个win32程序

上一节我们讨论了windows消息队列和消息循环机制,

2014-06-06 16:48:57 701

原创 消息队列与消息循环

作为windows编程的开篇,消息队列与消息循坏可谓当之无愧,之所以这样

2014-06-05 17:28:25 1285

原创 进程间通信第三章(System V IPC)

1.概述System V IPC的三种类型:System V消息队列Syste V信号量

2014-04-24 17:41:18 553

原创 进程间通信第二章(Posix IPC)

1.概述Posix IPC的三种类型

2014-04-24 15:45:39 527

原创 进程间通信第一章(简介)

斯蒂芬斯蒂芬

2014-04-24 15:12:56 453

转载 Linux C语言操作MySQL

1.MySQL数据库简介MySQL是一个开源码的小型关系数据库管理系统,体积小,速度快,总体成本低,开源。MySQL有以下特性:(1) 使用C和C++编写,并使用了多种编译器进行测试,保证源码的可移植性。(2) 支持多线程,利用CPU资源,支持多用户。(3) 可以处理拥有上千万条记录的大型数据库。(4)既可以作为一个单独的应用程序应用在客户端服务器网络环境中

2014-03-21 14:36:27 597

转载 在Linux下安装和使用MySQL

一、引言  想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的MySQL。本以为有Windows下使用SQL Server的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在真正安装和使用MySQL时走了很多弯路,遇见很多问题,毕竟Linux和Windows本身就有很大区别。为了让和我一样的初学者在学习的过程中少走弯路,尽

2014-03-19 19:38:31 435

原创 模版与泛型编程

一、模版定义1、定义函数模版函数模版是一个独立于类型的函数,可作为一种方式,产生函数的特定类型版本。模版定义一关键字template开始,后接模版形参表,模版形参表是用尖括号的一个或多个模版形参的列表。模版形参包括类型形参和非类型形参,使用函数模版时,编译器会根据模版实参绑定到模版形参来进行实例化。(1)模版类型形参 类型形参由关键字class或typename后接说明符构成,在模

2013-12-27 15:31:04 585

原创 复制控制

1、复制控制      每种类型定义了创建该类型对象时会发生什么的函数即:构造函数,同时类型还能控制复制、赋值或撤销该类型对象时会发生什么,这些是通过:复制构造函数、赋值构造函数和析构函数来控制这些行为的,三个函数总成为复制控制。2、复制构造函数     (1)定义                只有单个形参,而且该形参是对本类类型对象的引用(常用const修饰),这样的构造函数称

2013-12-12 17:06:19 707

原创 操作符重载

一、操作符重载1、定义      具有特殊名称的函数,保留字operator后接需定义的操作符符号。2、操作符重载需要注意的地方      不能创建任何新的操作符      重载的操作符必须具有一个类类型或枚举类型的操作数      重载的操作符不能改变原有操作符的优先级和结合性      重载的操作符不具备短路求值特性3、重载操作符的设计原则

2013-12-12 11:32:55 534

原创 关联容器

关联容器支持通过键来高效地查找和读取元素,放入关联容器中的元素,按照键的大小来排列,c++标准库支持两个基本的关联容器类型:map和set。map是键-值对的集合,通常可以理解为关联数组,使用map对象时,必须包含map头文件。set是单纯的键的集合,它支持map大部分操作,使用set容器时,必须包含set头文件。关联容器的类型包或map、set、multimap、multiset。

2013-12-03 20:15:21 669

原创 标准IO库

标准库定义了一族类型,支持控制窗口、文件和string对象的读写操作,这三种操作分别定义在iostream、fstream和sstream三种头文件中,它们包含了istream、ostream、iostream;ifstream、ofstream、fstream;istringstream、ostringstream、stringstream等IO类型,它们的基本继承关系如下所示:

2013-11-29 12:52:02 605

原创 容器适配器

容器适配器通常是让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现,一般情况下,它的初始化需要传递一个容器作为参数,而它所有的操作也是在这个容器上实现的。标准库提供了三种顺序容器适配器:queue、priority_queue、stack,使用它们时需要包含#include 和#include头文件,容器适配器支持关系运算。                容器适配器的初始化:

2013-11-29 10:19:27 652

原创 c++顺序容器

顺序容器是将单一类型元素聚集在一起,并根据位置来存储和访问这些元素的一种容器,该容器中的元素排列顺序与元素值无关,而是由元素添加到容器里的次序决定。标准库定义了三种顺序容器类型:vector、list和deque。在使用顺序容器前,我们需要包含下列三种头文件之一:#include 、#include 和#include 。        容器元素的初始化:

2013-11-25 21:13:55 735 3

原创 标准库string类型总结

string类型作为c++语言标准库中的重要类型,在编程中起着至关重要的作用,可以说string类型无处不在,只要有c++编程,那么一定就有string类型的存在。string类型支持长度可变的字符串,c++标准库将负责管理与存储字符相关的内容,以及提供各种有用的操作。以下列出了string类型常见操作,由于string类型与顺序容器相类似,所以它支持顺序容器的大多数操作,包括用使用迭代器的操作,

2013-11-19 23:17:58 967 1

空空如也

空空如也

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

TA关注的人

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