- 博客(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
原创 利用关键代码段实现线程同步
关键代码段(临界区)工作在用户方式下, 关键代码段(临界区)是指一个小代码段,在代码能够执行前,它必须独占对某些资源的访问权。
2014-07-07 16:28:38 554
转载 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
转载 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关注的人