自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

u012226625的专栏

生于忧患 死于安乐!

  • 博客(33)
  • 资源 (3)
  • 收藏
  • 关注

转载 NAN和INF产生与处理

C语言当中的nan表示not a number,等同于 #IND:indeterminate (windows)产生:对浮点数进行了未定义的操作;对负数开方,对负数求对数,0.0/0.0,0.0*inf、inf/inf、inf-inf这些操作都会得到nan。(0/0会产生操作异常;0.0/0.0不会产生操作异常,而是会得到nan);在GNU中,使用宏:float NAN对浮点数赋值;判定:库函数方...

2018-03-29 17:37:05 10092

原创 linux下MySQL多实例化 方法一

mysql安装

2016-12-25 16:27:05 474

原创 mysql用户创建以及权限刷新

mysql 创建用户:insert into mysql.user(Host,User,Password) values('%','hsgzl',password('1'));或insert into mysql.user(Host,User,Password) values('主机IP地址','hsgzl',password('1'));创建完成刷新权限:

2015-10-07 18:47:37 2637

转载 C++多线程编程

C++多线程编程入门(转)第1节   背景为了更好的理解多线程的概念,先对进程,线程的概念背景做一下简单介绍。早期的计算机系统都只允许一个程序独占系统资源,一次只能执行一个程序。在大型机年代,计算能力是一种宝贵资源。对于资源拥有方来说,最好的生财之道自然是将同一资源同时租售给尽可能多的用户。最理想的情况是垄断全球计算市场。所以不难

2015-09-20 00:17:12 326

原创 MySQL字符集问题

最近在 工作中,遇见往mysql数据库存取时出现乱码情况,进行查阅资料后进行一些总结:基本概念• 字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等;• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给字符’A'赋予数值0,给字符’B'赋予数值1,则0就是字符’A'的编码;• 给定

2015-09-19 20:23:05 461

原创 嵌套触发器

嵌套触发器当某一触发器执行时,能够触发另一个触发器,这种情况下称之为触发器嵌套。在执行过程中,如果一个触发器修改某个表时,而这个表有其他触发器,这时就使用了嵌套触发器。在SQL server 中,触发器能够嵌套至32层。如果不需要嵌套触发器,可以通过sp_configure 选项进行设置。Oracle 不支持嵌套触发器创建DELETE 触发器A_delete,实

2014-05-31 20:35:15 791

原创 锁的分类

锁有两种分类方法:从数据库系统角度分类和从程序员的角度分类。从数据库角度来看,锁可以分为共享锁、独占锁和更新锁。共享锁:共享锁锁定的资源可以被其他用户读取,但不能修改。在select 命令执行时,SQL server通常会对对象进行共享锁锁定。一般情况下,加共享锁的数据页被读取完毕后,共享锁就会立即被释放独占锁:独占锁锁定的资源只允许进行锁定操作的程序使用,对他

2014-05-28 22:27:02 742

原创 数据库中对表的操作

对表定义的修改,不同的数据库系统有不同的限制。Oracle数据库就限制对列的修改只能是加大列的宽度而不能是缩小,而且不能删除列。增加新列ALTER TABLE table_name  ADD  colum_name  data_type向已有表中增加非空约束的列ALTER TABLE student  ADD  Email  CHAR(15)

2014-05-10 22:49:17 621

原创 数据库范式

范式    构造数据库必须遵循一定的规则,在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有 6 中模式:第一范式、第二范式、第三范式、第四范式、第五范式和第六范式。满足最低要求的范式是第一范式,在第一范式的基础上进一步满足更多要求的称为第二范式,其余范式以此类推。一般说来,数据库只需要满足第

2014-05-03 14:48:33 507

转载 栈区和堆区内存分配区别

一直以来总是对这个问题的认识比较朦胧,我相信很多朋友也是这样的,总是听到内存一会在栈上分配,一会又在堆上分配,那么它们之间到底是怎么的区别呢?为了说明这个问题,我们先来看一下内存内部的组织情况.从上图可知,程序占用的内存被分了以下几部分.1、栈区(stack)由编译器自动分配释放 ,存放函数的参数值,局部变量的值等,内存的分配是连续的,类似于平时我们所说

2014-04-10 23:18:51 541

转载 Linux网络编程必看书籍推荐

首先要说讲述计算机网络和TCP/IP的书很多。 先要学习网络知识才谈得上编程讲述计算机网络的最经典的当属Andrew S.Tanenbaum的《计算机网络》第五版,这本书难易适中。《计算机网络(第5版)》是国内外使用最广泛、最权威的计算机网络经典教材。目前已经是第五版,本书作者80年代就开发出MINIX,是一个用于操作系统教学的类UNIX(的小型操作系统。而

2014-04-10 23:07:08 483

原创 C语言必背程序

1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/#include "stdio.h"main(){int i,j,result; for (i=1;i   { for(j=1;j       {          result=i*j;          printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/

2014-04-10 23:01:28 1543 2

原创 用链表模拟大整数加法运算

例如:9>9>9>NULL + 1>NULL => 1>0>0>0>NULL肯定是使用递归啦,不然没办法解决进位+1问题,因为这时候要让前面的节点加1,而我们的单链表是永远指向前的。此外对于999+1=1000,新得到的值的位数(4位)比原来的两个值(1个1位,1个3位)都多,所以我们将表头的值设置为0,如果多出一位来,就暂时存放到表头。递归结束后,如果表头为1,就在新的链表外再加一个

2014-04-10 22:52:31 959

原创 内存对齐

在我们的程序中,数据结构还有变量等等都需要占有内存,在很多系统中,它都要求内存分配的时候要对齐,这样做的好处就是可以提高访问内存的速度。 我们还是先来看一段简单的程序:                               程序一 1 #include  2 using namespace std; 3  4 struct X1 5 { 6  

2014-04-08 17:28:50 421

转载 程序员面试题精选100题-最长公共子串[算法]

题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子串,则输出它们的长度4,并打印任意一个子串。

2014-04-08 16:59:51 644

转载 程序员面试题精选100题-字符串的排列[算法]

题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。分析:这是一道很好的考查对递归理解的编程题,因此在过去一年中频繁出现在各大公司的面试、笔试题中。我们以三个字符abc为例来分析一下求字符串排列的过程。首先我们固定第一个字符a,求后面两个字符bc的排列。当两个字符b

2014-04-08 16:57:21 447

原创 面试题-在字符串中删除特定的字符[算法]

题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。要编程完成这道题要求的功能可能并不难。毕竟,这道题的基本思路就是在第一个字符串中拿到一个字符,在第二个字符串中查找一下,看它是不是在第二个字符串中。如果在的话,就从第一个字符串中删除。但如何能够

2014-04-08 16:53:42 1821

转载 程序员面试题精选100题-不用+、-、×、÷做加法[算法]

题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。分析:这又是一道考察发散思维的很有意思的题目。当我们习以为常的东西被限制使用的时候,如何突破常规去思考,就是解决这个问题的关键所在。看到的这个题目,我的第一反应是傻眼了,四则运算都不能用,那还能用什么啊?可是问题总是要解决的,只能打开思路去思考各种可能性。首先我们可以分析人们是如何做十进制的加法的,比如是如何

2014-04-08 16:47:47 438

原创 面试题-八皇后问题[算法]

题目:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上。下图中的每个黑色格子表示一个皇后,这就是一种符合条件的摆放方法。请求出总共有多少种摆法。          

2014-04-08 16:42:35 865

转载 程序员面试题精选100题-字符串的组合[算法]

题目:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。分析:在本系列博客的第28题《字符串的排列》中,我们详细讨论了如何用递归的思路求字符串的排列。同样,本题也可以用递归的思路来求字符串的组合。假设我们想在长度为n的字符串中求m个字符的组合。我们先从头扫描字符串的第一个字符。针对第一个字符,我们有两种选择:一是

2014-04-08 16:39:25 766

原创 模板

InStack 和 CharStack 的共同属性可以用另一种不同的方式来表达,这就是C++的模板机制。模板也被称之为参数化类型,在如下列代码中给出了堆栈的模板。         const  int  defautStack = 128;         template           class  Stack  {                int      

2014-02-19 21:25:03 426

原创 使用const 提高函数的健壮性

看到const 关键字,C++程序员首先想到的可能是const 常量,这可不是良好的条件反射。如果只知道用 const 定义常量,那么相当于把火药用于制作鞭炮。Const 更大的魅力是它可以修饰函数的参数和返回值,甚至函数的定义体。用const 修饰函数的参数       如果参数用于输出,不论它是什么数据类型,也不论它采用“指针传递”还是“引用传递”,都不能参加const

2014-02-19 20:32:29 631

原创 指针的定义和初始化

每个指针都有一个与之关联的数据类型,该数据类型决定了指针所有指向的对象的类型。例如,一个int 型指针只能指向 int 型对象。1.指针变量的定义     C++语言使用 * 号把一个标识符声明为指针:            vector   *pvec;        int        *p1, *p2;        string    *pstri

2014-01-02 21:19:39 8669 1

原创 Combo Box 组合框控件总结

1)定义控件变量    对已创建的Dialog,从控件工具箱将Combo Box 控件拖放到上面。打开 Class Wizard,添加控件对应变量,如:CComboBox m_combo。2)  在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。Vc++中换行用ctrl+回车。若在VS2010中,Items间用";"隔开即可;

2013-12-20 13:29:28 1172 1

原创 获取系统当前时间

在初始化对话框中或需要用系统时间时,填写一下代码即可:             Ctime end;         mYear   =   end.GetYear();          mMonth   =   end.GetMonth();         mDay   =   end.GetDay();  mHour = end.GetHour();mYea

2013-12-20 10:14:27 376

原创 C++异常处理

C++ 的异常处理中包括:throw 表达式,错误检测部分使用这种表达式来说明遇到了不可处理的错误。可以说,throw 引发了异常条件。try 块,错误处理部分使用它来处理异常。try 语句块以 try 关键字开始,并以一个或多个 catch 子句结束。在 try 块中执行的代码所抛出(throw)的异常,通常会被其中一个 catch 子句处理。由于它们“处理”异常,cat

2013-12-10 16:33:24 475

原创 new 和 delete 表达式

定义变量时,必须指定其数据类型和名字.而动态创建对象时,只需指定其数据类型,而不必为该对象命名.取而代之的是,new表达式返回指向新创建对象的指针,我们通过该指针来访问此对象:              int i;  //named,uninitialized int variable             int *pi=new int; //pi points to dyn

2013-12-08 12:06:10 486

原创 vector 对象操作

vector的操作      empty()                                          如果 v 为空,则返回 true, 否则返回 false 。      v . size ()                                      返回 v 中元素的个数。      v . push _ back ( t )  

2013-12-06 09:23:41 682

转载 窗口截图

窗口截图,可以获取遮挡窗口完整的图像,并保存到bmp文件中去。主要用到的函数中PrintWindow,VC6不支持该函数,请使用VS2008或vs2010来编译。其它需求如平台要求请参考MSDN文档。void SaveHwndToBmpFile(HWND hWnd, LPCTSTR lpszPath){HDC hDC = ::GetWindowDC(hWnd);ASSERT(hDC

2013-12-05 15:35:23 556

原创 vector 对象的定义和初始化

C++   支持两种初始化变量的形式:复制初始化和直接初始化。复制初始化语法用等号(=),直接初始化则是把初始化式放在括号中:      int  ival(1024);      int  ival = 1024;两种情况的初始化值是相同的。      vector 类定义了好几种构造函数,用来定义和初始化 vector 对象:                    ve

2013-12-05 15:07:20 1043

原创 标准库 vector 类型

vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和string对象一样,标准库将负责管理与存储元素相关的内存。我们把vector称为容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。    使用 vector 之前,必须包含相应的头文件:          #include           using std::vector

2013-12-05 14:01:19 541

原创 内联函数

1. 内联函数避免函数调用的开销      将函数指定为内联函数,就是将它在程序中每个调用点上“内敛地”展开。假设我们将 shorterString 定义为内联函数,则调用:                  cout       在编译的时候将展开为:                  count        从而消除了把 shorterStri

2013-12-03 20:16:35 560

原创 typedef 名字的作用你知道多少?

typedef 可以用来定义类型的同义词:    typedef  double  wages;    typedef  int exam;    typedef  wages  salary;  //indirect  synonym  for   doubletypedef 名字可以用作类型说明符:    wages  hpurly, weekly;

2013-11-29 13:50:16 490

Combo Box(组合框)控件使用总结

Combo Box的使用总结,包含几种不常见的方法,共12中类型!

2013-11-24

汇编词法分析源码

代码可直接运行,无任何问题!本代码可进行修改,以适应更强大的词法分析!(本程序只适合分析c语言)

2013-11-03

vs 快捷键大全

vs 快捷键大全,包含编译,运行,代码阶段各个命令,可以帮助一些已经熟悉vs的人,更好的操作vs!

2013-11-03

空空如也

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

TA关注的人

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