自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (12)
  • 收藏
  • 关注

原创 重载set的operator<()函数

重载set的operatorstruct A{ int x; int y; int z;/* bool operator < (const A & other)const { return (x == other.x) ? y > other.y : x > other.x; }*/}; // end of struct A

2016-06-29 13:20:53 3788

原创 修改分库中的数据记录

for((id=1;id < 10000000;++id))do dbId=`expr $id % 10`; # 根据id将数据分到各个库中 mysql -uxxxx -pxxxx -e"update db_$dbId.table_1 set data = 1000 where id = $id;" # 更新字段值 mysql -uxxxx -p

2016-04-19 09:35:36 300

原创 如何脚本备份各个分库

#! /bin/shif [ $# -lt 1 ];then echo "error.. need args" exitfiif [ "$1"x != "back"x ];then echo "usage back_db.sh back" exitfimysqldump -uxxxx -pxxxx db_name>db_name.bakfor dbId in `seq 0

2016-04-19 09:30:44 355

原创 分库中如何修改表中的字段长度和增加一列

#! /bin/shif [ $# -lt 1 ];then echo "error.. need args" exitfiif [ "$1"x != "alter"x ];then echo "usage alter_table.sh alter" #为了防止误执行脚本 exitfimysql -uxxxx -pxxxx -e"alter table db_name.tab

2016-04-19 09:26:06 1208

原创 根据网络包内容过滤

强大的网络包内容过滤工具:ngrep -d eth1 -q '^POST .* HTTP/1.[01]'

2015-06-05 10:02:08 479

原创 memcached-1.4.22 源码问题

看了do_slabs_newslab源码,好像有瑕疵,欢迎跟进,先贴源码static int do_slabs_newslab(const unsigned int id) { slabclass_t *p = &slabclass[id]; int len = settings.slab_reassign ? settings.item_size_max :

2015-04-05 23:57:03 578

原创 八皇后 n皇后 问题

#include #include #include using namespace std;void show(vector& pos){ for(int i = 0; i < pos.size(); ++i) { cout << pos[i] << '\t'; } cout << endl;}bool isValid(vector& pos, int end){

2015-03-19 10:44:03 443

原创 输入一个字符串,如何求最大重复出现的字符串

输入一个字符串,如何求最大重复出现的字符串呢?比如输入 ttabcftrgabcd,输出结果为 abc,canffcancd,输出结果为 can。#include #include using namespace std;// 输出字符串中的最长重复子串,字串位置不重叠// 比如输入ttabcftrgabcd输出abc// 再比如输入canffcancd输出canvoid co

2015-03-06 17:07:19 1171

原创 数组中数字的所有组合情况

#include #include #include using namespace std;// 列出数字的所有组合情况// 使用树的层次遍历void Combination(int arr[], int len){ if(arr == NULL || len <= 0) { return; } queue > q; // 第一层节点入队列 for(int i =

2015-03-05 13:34:50 1261

原创 循环递增数组中查找是否存在某个数

#include #include using namespace std;// 在循环递增数组中查看是否存在某个数// 返回-1表示数组中没有该元素int search(int arr[], int len, int value){ if(arr == NULL || len <= 0) { return -1; } int start = 0; int end = l

2015-03-03 11:39:01 1207

原创 字符串原地压缩

#include #include #include using namespace std;// 字符串翻转void reverse(char* start, char* end){ while(start < end) { swap(*start++, *end--); }}// 将数字转换成字符串存储到numStr中// 返回被转换的数字串长度int setNu

2015-01-22 22:39:37 695

原创 递归,非递归生成数组的所有排列

#include #include #include using namespace std;void showArr(int* arr, int len){ for(int i = 0; i < len; ++i) { cout << arr[i] << '\t'; } cout << endl;}// 递归显示组合void recursiveComb(int arr

2015-01-22 18:36:07 613

原创 输入两个整数 n 和 m,从数列 1,2,3.......n 中随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来.

#include #include using namespace std;// 显示组合void showCombination(const vector& s){ for(int i = 0; i < s.size(); ++i) { cout << s[i] << ' '; } cout << endl;}// 1到n随机取出几个数使其和等于mvoid findC

2015-01-07 20:54:12 1267

原创 基本的排序算法

#include #include #include using namespace std;// 插入排序void insertSort(int arr[], int len){ if(arr == NULL || len <= 1) { return; } for(int i = 1; i < len; ++i) { int temp = arr[i]; in

2015-01-06 22:26:28 585

原创 二叉树建立,递归,非递归,前序,中序,后序遍历

#include #include #include #include using namespace std;struct TreeNode{ int data; TreeNode* left; TreeNode* right;}; // end of TreeNode// 前序遍历建立二叉树,0表示空节点void createTree(TreeNode** root,

2015-01-06 12:33:24 601

原创 链表插入删除操作

#include using namespace std;// 定义单向链表节点struct ListNode{ int data; ListNode* next;}; // end of ListNode// 将新节点插入链表头void insertList(ListNode** head, int insertData){ if(head == NULL) { re

2015-01-05 22:29:57 2012

原创 宏定义和函数定义冲突会怎样?

#include #define add(a, b) ((a) + (b))using namespace std;int add(int a, int b){ return a + b;}int main(int argc, char* argv[]){ cout << add(7, 8) << endl;}定义了一个add宏和一个add函数,编译是会得到一下错误:Mac

2015-01-04 20:10:56 1135

原创 atexit注册终止处理程序

#include #include using namespace std;void fun1(){ cout << "fun1" << endl;}void fun2(){ cout << "fun2" << endl;}int main(int argc, char* argv[]){ atexit(fun1); atexit(fun1); atexit(fun2

2015-01-03 12:51:09 644

原创 求出sum=1+11+111+1111+ .... + 111...111(1024个1),sum有多少个1

先列一个竖式:                           1                         11                       111                     1111           .           .  1111111...11111(1023个1)11111111...11111(1024个

2015-01-02 11:43:37 4693

原创 解一道递归调用题

int ack(int m, int n){ if(m == 0) return n + 1; else if(n == 0) return ack(m - 1, 1); else return ack(m - 1, ack(m, n -1 ));} ack(3,3)的输出是什么?假设我们将ack(m,n)填充到一个二维矩阵的第m行第n列,从函数中可以看出第m行第n列

2015-01-01 23:54:38 618

原创 获取字符串中的数字串

#include #include #include #include using namespace std;// 获取字符串中的数字串void pickNum(const char* str, vector& numVec){ // 验证参数有效性 if(str == NULL || strlen(str) == 0) { cerr << "invalid parame

2015-01-01 16:53:27 650

原创 epoll 水平触发和边缘触发

假设内核缓冲区中有2k数据,你只读了1k到应用程序缓冲区。当使用水平触发选项注册描述符时epoll会通知应用程序还有数据没有读取。如果使用边缘触发选项时就不会再次通知,所以使用边缘触发应该在循环内读完缓冲区内的所有数据。

2015-01-01 13:46:53 686

原创 linux常用脚本

查看一个进程最大可以打开的文件数目,与机器内存有关:cat /proc/sys/fs/file-max

2015-01-01 10:10:41 494

原创 使用存储映射I/O函数mmap进行文件拷贝

使用存储映射I/O函数mmap进行文件拷贝比调用read和write函数更快,因为mmap映射两个文件到内存之后可以使用memcpy直接在两个内核缓冲区之间拷贝数据。使用read将数据从内核缓冲区拷贝到应用程序缓冲区,再使用write将应用程序缓冲区的数据拷贝到内核缓冲区中就慢了。

2014-12-31 23:24:04 607

原创 动态链接时如何访问在其他模块中的全局变量

全局变量可定义在共享模块,也可以定义在程序主模块。无论全局变量定义在共享模块还是主模块都是通过GOT间接访问。主模块是第一个载到内存中的,运行时不会再进行地址的重定位,所以链接时就要确定所有引用全局变量的地址。主模块为所有引用的全局变量产生一个副本,包括定义在其他共享模块中的全局变量。当共享模块发现主模块中有需要引用的全局变量副本时就会使用该副本的地址进行重定位,如果主模块中没有该全局变量的副本就

2014-12-27 11:46:02 839

原创 从system返回值中获得程序退出码

#include #include #include using namespace std;int main(int argc, char* argv[]){ cout << "test1" << endl; string cmd = "./test2"; int status = system(cmd.c_str()); cout << WEXITSTATUS(status

2014-12-26 11:11:40 961

原创 C++重复一致地声明全局变量没有问题

extern int globalVal;extern int globalVal;int main(int argc, char* argv[]){ globalVal = 10; return 0;}g++ -o test test.cc -c编译成目标文件后没有提示错误,但是如果将第二个globalVal声明改成double类型会有‘globalVal’ has a previo

2014-12-25 23:11:55 699 1

原创 两个进程如何共享内存

进程在访问内存时会使用页表将虚拟内存映射为物理内存,访问共享内存实际就是将两个进程的虚拟内存块映射到同一个物理内存块以达到共享的目的。

2014-12-25 19:20:32 1698

原创 select into 到临时表中

select * into temp my_temp_table from src_table,临时表在会话结束后会自动删除.

2014-12-25 11:22:24 795

原创 linux shell 脚本

linux下shell脚本,双引号内的特殊字符产生

2014-10-11 14:44:35 521

原创 通过程序名杀死进程

killall 程序名

2014-10-11 14:38:27 546

原创 通过程序名称查看哪些进程正在运行

pgrep 程序名 -l

2014-10-11 14:35:09 901

原创 静态链接库相互依赖

想同时链接两个自定义的静态链接库,发现无论以什么顺序链接都会有一些函数未定义。网上搜了一番找到解决方案:假设有liba.a和libb.a两个静态链接库,则添加链接选项时,多链接其中一个库一遍即可解决相互依赖的问题。如-la -lb -la。为什么相互依赖的静态链接库会导致其中一些库中的函数未定义,因为链接器并没有把库中的所有符号都链接到当前程序中,而是当前程序中有未定义的符号就到链接库

2014-02-24 20:58:10 4250

原创 ubuntu安装cuda

到nvidia官网根据显卡型号快速找到显卡驱动(run文件).sudo chmod a+x **.run 更改文件权限为可执行运行**.run文件,全部点yes,提示安装完成后 reboot重启nvidia官网继续下载cuda安装包(run文件),一定要对应上正确的操作系统!一样该权限,执行该文件提示关掉x-serverctrl + alt + f1 进入终端,pkill

2013-12-17 22:13:12 654

原创 main函数入口处的段错误

将一些源文件用个g++编译通过,执行时发现有段错误,gdb调试看了一下是在main函数的入口处错了。排查了好一会,发现了问题所在,因为栈中定义了一个较大的数组。解决方法就是不要把大数组放栈中,大数组new出来就没事了.

2013-11-28 17:28:43 1756

转载 __FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程 )

__FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程 )先看下简单的初始代码:注意其编译运行后的结果。root@xuanfei-desktop:~/cpropram/2# cat global.h //头文件#ifndef CLOBAL_H        #define GLOBAL_H        #include

2013-04-22 14:04:42 684

转载 POSTGIS常用函数

Management Functions1,基本操作函数AddGeometryColumn(, , , , , )给一个已存在属性数据表增加一个几何字段(geomtry column)。schema_name 指表的模式的名字,srid 必须是一个整数指对应于 SPATIAL_REF_SYS 表,type必须是一个大写的字符串,用来描述几何类型,例如:'POLYGON' 或者

2013-04-15 15:06:17 833

原创 PostGis判断两个地理信息的距离是否小于某个值

st_dwithin(geom1, geom2, distance)  --> 如果geom1和geom2的距离小于distance就返回true, 否则返回false

2013-04-15 13:08:45 1399

原创 PostGis 判断一个多边形完全包含另一个多边形,或完全包含一个点

st_within(geom1, geom2) --> 判断geom2是否包含geom1, 其中geom2和geom1是两个地理信息

2013-04-14 20:40:23 3176

原创 PostGis 如何判断两个多边形是否有重叠的区域

select st_astext(ST_Intersection(ST_Multi(st_geomfromEWKT('SRID=32649;POLYGON((x1 y1, x2 y2, x3 y3, x4 y4, x5 x5, x1 y1))') ),the_geom)) from tableName where 条件st_geomfromEWKT('SRID=3264

2013-04-14 20:30:52 4435

小端堆的实现

基于模板的小端堆的实现,可以自行稍加改造编程大端堆。

2012-04-19

C/S 模式的聊天软件

用MFC开发的,基于客户、服务器模式的聊天工具

2011-07-21

CPlus设计新思维.pdf

CPlus设计新思维.pdf CPlus设计新思维.pdf CPlus设计新思维.pdf

2011-03-20

VSS6.0使用说明书.pdf Visual SourceSafe使用说明 V1.0

VSS6.0使用说明书.pdf Visual SourceSafe使用说明 V1.0

2011-03-20

关于编程规范的几个原则 .ppt

编程规范.ppt 编程规范.ppt 编程规范.ppt 编程规范.ppt

2011-03-20

什么是好的程序.ppt

什么是好的程序.ppt 什么是好的程序.ppt 什么是好的程序.ppt

2011-03-20

练成Linux系统高手教程.pdf

练成Linux系统高手教程.pdf 练成Linux系统高手教程.pdf 练成Linux系统高手教程.pdf

2011-03-20

编译原理递归下降分析法C++版

编译原理递归下降分析法C++版编译原理递归下降分析法C++版编译原理递归下降分析法C++版

2009-06-22

编译原理词法分析器演示C++版

编译原理词法分析器演示编译原理词法分析器演示编译原理词法分析器演示编译原理词法分析器演示C++版

2009-06-22

编译原理逆波兰算法及四元式

编译原理逆波兰算法编译原理逆波兰算法编译原理逆波兰算法编译原理逆波兰算法

2009-06-22

编译原理LL1分析法

编译原理LL1分析法编译原理LL1分析法编译原理LL1分析法编译原理LL1分析法

2009-06-22

sql挂起解决方案1

sql挂起解决方案:安装SQL如提示挂起导入本注册表可解决

2009-06-15

空空如也

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

TA关注的人

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