- 博客(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
3923
原创 修改分库中的数据记录
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
341
原创 如何脚本备份各个分库
#! /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
395
原创 分库中如何修改表中的字段长度和增加一列
#! /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
1257
原创 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
622
原创 八皇后 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
476
原创 输入一个字符串,如何求最大重复出现的字符串
输入一个字符串,如何求最大重复出现的字符串呢?比如输入 ttabcftrgabcd,输出结果为 abc,canffcancd,输出结果为 can。#include #include using namespace std;// 输出字符串中的最长重复子串,字串位置不重叠// 比如输入ttabcftrgabcd输出abc// 再比如输入canffcancd输出canvoid co
2015-03-06 17:07:19
1226
原创 数组中数字的所有组合情况
#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
1311
原创 循环递增数组中查找是否存在某个数
#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
1266
原创 字符串原地压缩
#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
738
原创 递归,非递归生成数组的所有排列
#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
673
原创 输入两个整数 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
1307
原创 基本的排序算法
#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
623
原创 二叉树建立,递归,非递归,前序,中序,后序遍历
#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
638
原创 链表插入删除操作
#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
2061
原创 宏定义和函数定义冲突会怎样?
#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
1192
原创 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
673
原创 求出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
4901
原创 解一道递归调用题
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
653
原创 获取字符串中的数字串
#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
689
原创 epoll 水平触发和边缘触发
假设内核缓冲区中有2k数据,你只读了1k到应用程序缓冲区。当使用水平触发选项注册描述符时epoll会通知应用程序还有数据没有读取。如果使用边缘触发选项时就不会再次通知,所以使用边缘触发应该在循环内读完缓冲区内的所有数据。
2015-01-01 13:46:53
711
原创 使用存储映射I/O函数mmap进行文件拷贝
使用存储映射I/O函数mmap进行文件拷贝比调用read和write函数更快,因为mmap映射两个文件到内存之后可以使用memcpy直接在两个内核缓冲区之间拷贝数据。使用read将数据从内核缓冲区拷贝到应用程序缓冲区,再使用write将应用程序缓冲区的数据拷贝到内核缓冲区中就慢了。
2014-12-31 23:24:04
663
原创 动态链接时如何访问在其他模块中的全局变量
全局变量可定义在共享模块,也可以定义在程序主模块。无论全局变量定义在共享模块还是主模块都是通过GOT间接访问。主模块是第一个载到内存中的,运行时不会再进行地址的重定位,所以链接时就要确定所有引用全局变量的地址。主模块为所有引用的全局变量产生一个副本,包括定义在其他共享模块中的全局变量。当共享模块发现主模块中有需要引用的全局变量副本时就会使用该副本的地址进行重定位,如果主模块中没有该全局变量的副本就
2014-12-27 11:46:02
902
原创 从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
1005
原创 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
756
1
原创 两个进程如何共享内存
进程在访问内存时会使用页表将虚拟内存映射为物理内存,访问共享内存实际就是将两个进程的虚拟内存块映射到同一个物理内存块以达到共享的目的。
2014-12-25 19:20:32
1767
原创 select into 到临时表中
select * into temp my_temp_table from src_table,临时表在会话结束后会自动删除.
2014-12-25 11:22:24
849
原创 静态链接库相互依赖
想同时链接两个自定义的静态链接库,发现无论以什么顺序链接都会有一些函数未定义。网上搜了一番找到解决方案:假设有liba.a和libb.a两个静态链接库,则添加链接选项时,多链接其中一个库一遍即可解决相互依赖的问题。如-la -lb -la。为什么相互依赖的静态链接库会导致其中一些库中的函数未定义,因为链接器并没有把库中的所有符号都链接到当前程序中,而是当前程序中有未定义的符号就到链接库
2014-02-24 20:58:10
4380
原创 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
692
原创 main函数入口处的段错误
将一些源文件用个g++编译通过,执行时发现有段错误,gdb调试看了一下是在main函数的入口处错了。排查了好一会,发现了问题所在,因为栈中定义了一个较大的数组。解决方法就是不要把大数组放栈中,大数组new出来就没事了.
2013-11-28 17:28:43
1870
转载 __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
710
转载 POSTGIS常用函数
Management Functions1,基本操作函数AddGeometryColumn(, , , , , )给一个已存在属性数据表增加一个几何字段(geomtry column)。schema_name 指表的模式的名字,srid 必须是一个整数指对应于 SPATIAL_REF_SYS 表,type必须是一个大写的字符串,用来描述几何类型,例如:'POLYGON' 或者
2013-04-15 15:06:17
919
原创 PostGis判断两个地理信息的距离是否小于某个值
st_dwithin(geom1, geom2, distance) --> 如果geom1和geom2的距离小于distance就返回true, 否则返回false
2013-04-15 13:08:45
1470
原创 PostGis 判断一个多边形完全包含另一个多边形,或完全包含一个点
st_within(geom1, geom2) --> 判断geom2是否包含geom1, 其中geom2和geom1是两个地理信息
2013-04-14 20:40:23
3341
1
原创 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
4682
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人