- 博客(24)
- 收藏
- 关注
转载 解决Hash冲突的办法
1. 开放定址法开放定址法就是一旦发生冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入。Hi = (H(key) + di) MOD m, i=1,2,…, k(ki为增量序列。di可有下列三种取法:(1)di=1,2,3,…, m-1,称为线性探测再散列;(2)di=1^2, -(1^2), 2^2, -(2^2), 3^2,
2016-08-17 16:57:36
7433
2
原创 原码、反码、补码
这是一个困惑了我几年的问题,它让我对现在的教科书和老师极其不满,从我N年前开始摸电脑时,就几乎在每一本C++教科书上都说,8位有符号的取值范围是-128~+127,为什么不是-127~+127呢,后来的java,int的聚值范围,再32位计算,-2^31 ~ +2^31-1,可是,却从来没有任何一本教科书或一个老师比我解释过这个问题。 原因没有在工作上或者是什么地方直接遇到它,所以我也一直忽略它,
2016-08-11 14:15:27
439
原创 Linux下source bash sh ./的区别
source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限" 注:该命令通常用命令“.”来替代。 如:source .bash_profile www.2cto.com . .bash_profile两者等效。
2016-08-09 12:51:21
474
原创 Linux中scp命令详解
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点
2016-07-21 14:12:38
468
转载 Linux中MakeFile教程
跟我一起写 Makefile陈皓 (CSDN)概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML的标识的含义。特别
2016-07-15 15:22:28
261
原创 Linux中shell变量
linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出
2016-07-07 14:13:32
172
转载 Xargs用法详解
1. 简介 之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:find /sbin -perm +700 |ls -l 这个命令是错误的find /sbin -perm +700 |xargs ls -l 这样才是正确的xargs 可以读入 stdin 的资料,并且以空白字元或
2016-07-07 13:51:36
155
原创 Linux正则表达式与通配符
一.linux文本查找命令在说linux正规表达式之前,还介绍下linux中查找文本文件常用的三个命令:1.grep : 最早的文本匹配程序,使用POSIX定义的基本正则表达式(BRE)来匹配文本。2.egrep : 扩展式grep,其使用扩展式正规表达式(ERE)来匹配文本。3.fgrep : 快速grep,这个版本匹配固定字符串而非正则表达式。并且是唯一可以并行
2016-07-07 11:57:27
336
转载 Ubuntu gedit中文出现乱码解决方法
在中文支持配置还不完整的Ubuntu 14.04中,使用gedit打开带有中文字符的文件有时会出现乱码的情况,这是由于gedit对字符编码匹配不正确导致的,解决方法如下: 在终端中输入如下命令,然后重新打开gedit即可: gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB180
2016-07-07 10:45:03
253
原创 Linux后台程序运行方法
fg、bg、jobs、&、nohup、ctrl + z命令一、&加在一个命令的最后,可以把这个命令放到后台执行,如gftp &,二、ctrl + z可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行三、jobs查看当前有多少在后台运行的命令jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopp
2016-07-01 16:10:52
929
原创 Linux档案权限与目录配置
一、Linux文件属性ls -al 查看所有文件的属性第一栏代表档案的类型与权限:-rwxrwx---十个字符第一个字符:代表档案的类型[目录、档案、链接文件等]d 目录- 档案l 连结档b 装置文件里的可存储接口设备c 装置文件里的串行端口设备(键盘、鼠标)1
2016-06-15 14:09:15
254
原创 常见软件开发模式对比(瀑布、迭代、螺旋、敏捷)
1、瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法。瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。 瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变
2016-06-15 10:08:39
439
原创 Scrum敏捷软件开发模式
Scrum是一种敏捷软件开发的方法学,用于迭代式增量软件开发过程。什么是敏捷开发?敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发
2016-06-15 09:52:25
753
原创 CUDA中的直方图统计
本文通过在GPU上计算直方图说明GPU计算中的原子操作。原子操作是计算中不能分解为更小的部分的操作。当有数千个线程在内存访问上发生竞争时,这些操作能够确保在内存上实现安全的操作。即数据能按照实际的顺序进行读写以至于不发生错误。 CPU上的直方图计算比较简单(以100M随机生成的无符号字符数据为例),一个for循环扫描一遍数据集就能统计各数据出现的频率。主要代码如下:unsigned
2016-06-08 15:10:32
2452
原创 MFC中error LNK2019: 无法解析的外部符号
用VS2010打开VC6的MFC时,出现:error LNK2019: 无法解析的外部符号 __imp___vsnprintf,该符号在函数 _StringVPrintfWorkerA@20 中被引用经过查找两种方法亲测均可;闲记录,以方便遇到同样问题的网友解决办法:环境:win7,vs2010;方法一,下载:libodbccp32.lib,复制
2016-06-01 19:38:01
3365
1
转载 C/C++中typedef的使用
第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针
2016-05-12 11:28:47
304
转载 new和malloc的区别&delete和free的区别
1. malloc()函数1.1 malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void *malloc(unsigned int num_bytes); 说明:分配长度为num_bytes字节的内存块。如果分配成功则返回指向被分配内存的指针,分配失败返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。1.2 vo
2016-05-11 22:37:20
307
原创 C/C++中一维与多维数组
一、一维数组首先介绍一下一维数组一维数组的声明:int a[10];一维动态数组:int *a;int n = 10;a = new int[n];delete []a;一维数组的初始化:int a[10] = {0};int a[10] = {0,1,2,3,4,5,6,7,8,9};int a[10] = {}; //C++11新增,默认初始化为0
2016-05-11 10:47:09
410
转载 浅析extern关键字
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数
2016-05-10 16:09:48
303
转载 C++中static关键字解析
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include
2016-05-10 15:41:44
234
转载 浅析C++中引用与指针的区别
指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;
2016-05-10 15:18:53
231
转载 左值、右值与右值引用 & C++11中
我们先来谈谈C++11中对左右值的判断标准,以及左右值本身的一些细节,我想这应该是故事的开始。 在C++11中可以取地址的、有名字的就是左值,反之,不能取地址的、没有名字的就是右值。 举个例子:在a=b+c;中,&a是允许的操作,但&(b+c)这样的操作则不会通过编译。因此a是一个左值,(b+c)是一个右值。 其次,在C++11中右值又分为将亡值(xvalue,eX
2016-05-10 14:49:59
560
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人