自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (8)
  • 收藏
  • 关注

原创 linux shell git+golang的几个简洁函数备忘一下

function gm() { git status | grep -w "modified:" | awk '{print $3}' | while read line;do git add $line;done}export -f gmfunction findg(){ if [ $# -ne 1 -a $# -ne 2 ];then echo "findg onl...

2018-09-12 16:27:57 177

原创 rm with backup

function mvpath(){ if [ $# -ne 2 ];then echo "mvpath requires 2 paths, but are '$*'" && return 1 fi src="$1" dst="$2" if [ -d "$dst" ];then empty=`ls -A "$dst 2>/dev/nu

2018-07-20 15:11:12 166

原创 vim 基本配置

set nocompatible              " be improved, required"disable popup preview window while auto-completingset completeopt-=previewfiletype off                  " required" set the runtime path to includ...

2018-02-28 17:24:34 213

原创 html的table中rowspan colspan实现跨行或者跨列

rowspan是单元格跨行,colspan是单元格跨列。原则:1. 第一个tr单元格的colspan总数(如果没有colspan属性就按照colspan=1计数)表示整个table的列的个数(比如第一个tr的colspan总数为3,那么第二个tr里面可以有三个无colspan属性的td,或者, 有1个td包含colspan=2,一个无colspan的td)。2. rowspan最大只能

2017-11-18 17:13:20 2298

原创 循环队列算法之快速实现--shell

#!/bin/bashread_index=-1write_index=-1n=3readable=0writeable=nread_one(){    echo "start to read...."    if [ $readable -le 0 ];then        echo "Cannot read anymore" 

2017-02-06 19:00:42 421

原创 vim实现自动翻译单词

为vim增加自动翻译光标处的单词 查询有道在线词典解析内容

2016-11-25 18:49:11 2461

原创 一行代码为vim增加自动翻译单词功能 使用有道词典

1. 在 ~/.bash_profile最后增加如下:translate(){  word=$1  [ "x$word" = "x" ] && return 1  start=0;  wget -q --dns-timeout 6 -O - "http://fanyi.youdao.com/openapi.do?keyfrom=youdao111&key=60638690&

2016-11-25 18:20:38 1502

转载 感谢“http://it.oyksoft.com/” 关于安装yum 于redhatEL4上的办法

http://it.oyksoft.com/howto-install-yum-on-rhel-4/

2016-01-18 10:52:57 541

原创 解析xml

#include #define ch_not_spec(x) ((x) != '/' && (x) != '')struct XML_NODE{char name[64];char* property_start;char* property_end;int over_type;int type;std::vector child_list;

2015-08-01 18:43:01 637

翻译 一句话说明浮点数为何不能直接 if(f== 0.0)这样判断

float f = 0.33f * 0.2f;if(f - 0.066f == 0.0f)f = 0;这个是来自csdn论坛的一个帖子,说的比较简单明了。这里是不会走到f=0这个地方的,因为浮点数是底数+指数的存储,计算机并不能连续存储指定精度宽度内的所有浮点数。上述例子中,f第一次计算结果不是0.066,是比0.066稍大的一个数f = 0.066000007,傻眼了吧,呵呵。当然,

2015-07-23 22:20:11 4340

原创 反向查找字符串

char* strrstr(const char* src, const char* substr){if(src == NULL || substr == NULL)return NULL;int n = strlen(substr);const char* ret = src + strlen(src)- n;while(ret >= src){

2015-07-02 16:22:30 1492

原创 fwrite 返回值是实参count的写入个数

fwrite (char* buf, size_t  size, size_t count, FILE* fp)函数返回值是 完整的size的个数 所以, 如果size = 4  count=3 那么 返回值可能是0,1,2,3  表示完整写入了几个size。如下写法是错误的if( count != fwrite(buf, cout, 1 ,  fp))  do-somethi

2015-07-02 10:11:56 1032

原创 itoa不是c语言标准函数

今天在写一个跨平台功能时, 发现itoa在vc++下可以编译过,但是linux下面的g++就不行。后来发现原来itoa不是c标准函数,atoi是标准函数,所以就只好自己写了一个 利用sprintf就好了

2015-07-01 10:13:04 753

原创 批处理--工作当中获取本机ip地址然后执行一个循环启动脚本

goto :mainrem +++++++获取本机ip++++++++++++++++++++++++++++++++++++:get_local_iprem 注意 不要照搬某些人的文章,如果你把函数写成setlocal dosomething endlocal 这种结构,那么在这段代码中返回值无法赋值,你得到的返回ip为""@echo offecho 开始获取本机ip....

2015-04-14 17:00:32 3129

原创 看似小事,却极易写错

今天写个txt文章转换为html段落的小代码,结果一个地方搞了好一会才发现是哪个地方写错了:#include #include void main(int argc, char** argv){ if(argc < 2) { printf("file name failed!!!\n"); char k; scanf("%c", &k); return; }

2015-04-07 21:13:00 438

原创 修复界面bug并增加了自动提示是否输赢的 关于之前博客"html5 canvas 绘制象棋(将持续改进)"

象棋canvas.middle{border:1px solid #dddddd;cursor:crosshair;var mycanvas = document.getElementById("middle");var stepCount = 0;ctx = mycanvas.getContext("2d");var

2015-01-11 19:19:07 835

原创 关于一个求最小交换次数的算法的一个严格证明,是严格证明,不是想当然

问题描述:有一个1~n的数列的排列,但是这个数列已经被打乱了排列顺序,如果我们只是通过“交换任意两个元素”,那么,要实现元素从1~n的有序排列,“最少的交换次数是多少?”解答过程:首先我们纸上可以先写写简单的情况试试,比如排列:4 3 1 2, 交换次数=3;我们可以在多组测试中,边测试边想,真正的实现需要满足:4本该到2处, 2本该到3处, 3本该到1处, 1本该到4处,刚好一个循环

2015-01-06 10:33:21 4708

原创 从n个数中选择随机选择m个, m个数互不重复

/////////*从n个数中选择随机选择m个, m个数互不重复******************//////////////////int g_seed = 0; void srand_quick(int seed){    g_seed = seed;} inline intrand_quick(){    return ( ((g_s

2014-11-14 11:54:56 3560

原创 几句话说明boost库的编译(windows下面)-备忘

1.在 boost安装目录下面,进入到 tools/build/v2/engine 双击执行build.bat, 会在当前目录下面出现新的目录:bin.ntx862. 复制bin.ntx86下面的bjam.exe到boost安装目录下面3.开始执行编译boost的操作,bjam.exe --help可以查看帮助例如:E:\boost_1_55_0>bjam.exe --toolse

2014-11-05 15:20:45 576

转载 关于vc 链接时提示转换coff文件失败的【备忘-转载-来自百度知道】

wuweiwusi| 四级不知怎么本来编译好好的VS2010环境,忽然出现“转换到 COFF 期间失败: 文件无效或损坏”的链接错误。花了好多天,试了好多方法,最终解决了这个问题。现在罗列一下这几种解决方案:方案1: 点击“项目”-->“属性” --> “清单工具”, 然后选择"输入和输出’ --> ‘嵌入清单’,将后面的‘是’改成‘否’就可以了

2014-10-11 13:48:39 518

原创 今天自学一些逆向的基础知识,看了xchg指令,写了一个简单的 临界区 demo

拷贝一下代码,留作自己备份吧,不zhushi

2014-07-07 18:44:50 809

原创 晓说智能指针shared_ptr为何可以实现跨模块分配和释放内存

虚函数在解决跨模块内存分配释放中的体会

2013-07-25 21:45:11 6026 1

原创 vsvim--今天突然发现有个vs插件vsvim,仿真linux vim的各种键盘编辑文件

可以使用跟vim几乎完全一样的功能,比如快速定位到文件某个位置,删除单词,不用在点鼠标啦

2013-06-28 18:09:59 1306

原创 严格的二分查找算法,返回第一个相等的数,而不是返回任意一个相等的

int index(int * arry, int count, int val){ int start , mid, end; start = 0; end = count - 1;  int ret  = -1; while( start  {  mid = (start + end)/2;  if(val > arry[mid] )  {   star

2013-06-28 17:34:35 1139

原创 求结构体内成员的偏移和size的宏

#define MEMB_OFFSET(tp, mb)  ((unsigned int) (&((tp*)0)->mb))#define MEMB_SIZE(tp, mb)   ((unsigned int) (sizeof( ((tp*)0)->mb ) )  )

2013-06-25 10:17:29 696

转载 c++ explicit

网上找的解释http://www.thinkcode.cn/post/441.html在C++中explicit修饰一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数),explicit构造函数是用来防止隐式转换的。

2013-06-19 15:20:14 626

原创 dll文件和lib文件

参考了这篇文章http://www.cppblog.com/amazon/archive/2009/09/04/95318.html,http://wenku.baidu.com/view/d9a6520e7cd184254b3535b4.html做个简明总结。我们在程序中使用“pragma comment(lib, "a.lib")这个不一定是静态链接,这个只是告诉编译器,a.lib中包含我

2013-06-16 12:05:13 751

原创 判断四个扑克是否能算出24点

int can24(double * data, int count, double shouldVal){ #define  fabs(x)  ((x) /*判断4个数按照两个两个分组,分别计算出两个值,然后再根据两个值计算一下看看能不能构成shouldVal,这个x表示其中两个构成的一对计算出的值,然后pairshould判断另外两对计算的值能否跟之前计算的x算得shoul

2013-06-15 18:38:00 2622

原创 快速排序一趟分割,单循环

template void quickPartition(T * arry, int len){ T* bigPoint = arry + len - 1; T tmp; while(arry   if(*arry >= *(arry + 1)){   tmp = *arry, *arry = *(arry + 1), *(arry + 1) = tmp;   arry

2013-06-09 12:18:43 829

原创 c++的全局变量和size_type

全局变量的使用不使用任何修饰符:这样的情况就是定义全局的变量,注意,是定义,这意味着,其他地方不能再出现声明式或者定义式了。所以,如果你是在头文件使用这种方式,那么这个头文件只能被一个cpp文件包含,否则多个cpp文件包含它,就会在链接时报符号重定义错误,因为每个cpp都自己给自己的obj中定义了这个符号。这时,就要考虑使用extern方式了。使用extern方式:1.

2013-05-16 13:55:09 906

原创 惊叹,交换操作竟然可以不借助第三个中间数

今天在读《程序员的自我修养》时,第四章讲静态链接的开头,给出的实例程序中,有一个函数swap函数这样写的:void swap(int * a, int* b){       *a ^= *b ^= *a ^= *b;}叹为观止啊,我们通常想,先把a=b赋值,如果不借助第三方数,此时剩余信息已经只是关于原先的b的信息了,而上述代码则相当于:a = a' # b', b = (a'

2013-05-08 10:29:54 773 3

原创 递归处理正则表达式

/*这个小程序实现的是,匹配所有的子串。*表示重复>=0次  .表示匹配任意字符?表示重复0或1次+表示重复>=1次\加在上述字符前表示视作普通字符而非重复模式字符*/struct POS{    char * startIndex;//存放匹配子串在源串中起始索引    char * endIndex;//匹配子串在源串中下一次匹配的起始位置,

2013-05-07 13:26:29 749

原创 可变参数的函数的原理及其简单模仿

可变参数的定义是类似这样的:void _cdecl myfun(char * fmt, ...){...}这里的fmt主要是为了能够识别后面到底有几个参数及其类型的,否则编译器是无法判断函数参数个数的。由于参数的个数可变,所以也只有c调用风格的函数可以实现它,因为只有c调用风格的函数,参数的传递是由调用者负责的,而stdcall是由函数自身负责的。win32 api都是stdc

2013-05-07 12:43:50 628

原创 循环删除报数问题

给定n个排成一圈的人,他们依次循环报数:1,2,。。。,m;当报到m时,这个人就被踢出队伍。比如:n=6,m=3;那么将依次踢出:3,6,4,2,5,1算法:输入n,m输出:按被踢出顺序输出踢出的人思路:利用链表,指针p每次删除元素前调用p=p->next m-1次,利用循环链表表示“圈” void circleDelete(int n, int m){ struct myl

2013-04-22 18:32:00 866

原创 关于strcpy的面试问题

这个简单的函数可能是c/c++面试中被问到最多的了,网上有很多说明是不全面的,甚至是最核心的没有点到。以下看法仅仅是自己个人看法。1.为何strcpy要返回指针?可以方便级联调用,而且可以用于判断函数是否成功。比如if(!strcpy(dst,src){....},或者 strcpy(dst,src)[strlen(dst)]='a'等等2.strcpy实现的注意点有哪些?(1

2013-04-12 13:57:30 954

原创 sizeof运算求结构体大小

首先有几条规则:1. 结构体的成员相对于结构体的偏移量,是该成员所包含的最大简单类型(指占用内存数)的整数倍(如果该成员本身又是一个结构体,就要递归查找其简单类型,简单类型就是char short int float double,long)  比如struct a1{       char a[5];       int b;     }aa;    struct a2{

2013-04-09 15:50:51 3422

原创 从1-n中选择m个数的组合个数

给定1,2,3,。。。,n(n>=1), 从n个数中选择m(m递归实现:var data = [1,2,3,4,5];var output = [];function outputAll(start, count){    console.log(start + ","  + count); //跟踪调用过程    if(start data.length || data

2013-03-22 11:34:19 1261

原创 html5 canvas 绘制象棋(将持续改进)

象棋canvas.middle{border:1px solid #dddddd;cursor:crosshair;  var mycanvas = document.getElementById("middle");ctx = mycanvas.getContext("2d");var layout={offsetWidth:

2013-03-16 18:27:03 3021

原创 linux 脚本 之 简化工作

#!/bin/bash####调用另一个命令,生成0-23点的不同时间的报告,之前都是在前台要进行24个报告的添加,点击量挺多的,尤其是每次测试时都要重复点击。str1='{"action": "add", "data": {"start_day": 0, "object": "Reports", "name": "'str2='", "start_hour":' str3='

2013-02-25 20:08:28 494

原创 利用constructor 统一判断 类对象的具体类型(包括自定义类型的对象)

function getFunType(para){// para 是 传入的对象    var pattern = /function\s+([\w]+)/ ; // 正则表达式 \w 表示匹配数字或者字母或者下划线, \s 表示匹配空白符    result = [];    if( para.constructor && typeof para.constructor.toStr

2013-02-20 20:08:59 881

jdk1.6的中文文档

jak1.6的翻译的中文文档(翻译的相当好),java开发人员必备的枕边书

2008-12-03

大公司的java面试笔试题目汇总

大公司的java笔试面试题目,看看吧,有帮助,尤其找工作的朋友们

2008-12-03

常见的java面试题汇总,看看吧,很有帮助的

java的常见面试题,很基础,但是大多数人由于严重依赖IDE的自动开发,很多可能都答不上来。

2008-12-03

mysql5.x-jdbc驱动

mysql的jdbc驱动,开发java的mysql数据库的必备类库

2008-12-03

mysql5.1参考手册中文版,看看吧,完整的比从网页上零碎的看要强百倍

大家都来看看吧,非常好的文档,每个介绍都附带实例,开源的就是好,支持mysql

2008-12-03

sql2000的jdbc驱动类库

jdbc-sql2000的驱动,三个jar包

2008-12-03

最新javamail1.4,开发mail程序的类库集

javamail,官方上下载的,最新版的

2008-12-03

空空如也

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

TA关注的人

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