- 博客(41)
- 资源 (5)
- 收藏
- 关注

原创 世界上最好的c++ rpc实现基于c++14标准
代码量很少,就两个hpp文件,新手学习好材料。server:#include "buttonrpc.hpp"int foo(int age, int mm){ return age + mm;}int main(){ buttonrpc server; server.as_server(5555); server.bind("foo", foo); server.run()...
2018-04-29 07:19:42
14277
11

原创 世界上最好的c++ json解析器
url: https://github.com/button-chen/tinyjson使用只需包含一个头文件(header only).读取相当复杂的json,也很简单。#include "tinyjson.hpp"#include <string>#include <iostream>using namespace std;string jsonstri...
2017-08-12 12:09:51
4708
1
原创 c++封装简易http(基于microhttpd)
使用例子:#include "httpservice.hpp"#include "boost/bind.hpp"#include using namespace std;void handle_test1(boost::shared_ptr res, boost::shared_ptr req){ res->write(req->body());}class CLAS
2018-01-29 17:35:34
1819
原创 python装饰器
1: import timefrom functools import wraps def timethis(func): ''' Decorator that reports the execution time. ''' @wraps(func) def wrapper(*args, **kwargs): start = time.time() result = func(*
2016-12-15 16:48:39
311
原创 c++11之可变模板参数
auto mysum(){ return 1;}templateauto mysum(const T& t, const args&... ps){ return t * mysum(ps...);}int main(){ auto sum = mysum(1,3.9,4); cout << sum << endl; return 0;
2016-12-14 18:32:16
318
原创 一个ini配置文件解析器
test.ini:#begin[system]#参数1param1=12 ;参数2param2=12,13,14,15#支持多行模式param3=12, 13,14 ,15,18,19,20#参数4param4 = chen: hui:zong:hao:haoparam5=trueparam6 =true,false,aaa,bbbb, true[op
2016-12-09 16:42:36
489
原创 c++11之模板别名(using)
#include using namespace std;// 定义一个具体类型的别名, using 与 typedef 一样的效果// 但是模板的别名只能用using(如果typedef也能的话,cpp11就不会加using这个特性了)// 以下效果一样using u_flags = std::ios_base::fmtflags;typedef std::ios_base::
2016-11-02 15:02:13
1896
原创 boost系列化c++对象
#include #include #include using namespace std;// 包含以简单文本格式实现存档的头文件#include #include #include #include #include // 系列化map必须包含此文件#include #include class testclass;struct myinfo;namesp
2016-10-26 17:58:00
328
原创 c++ lambda闭包
templateT lambdaTEST(string& name){ auto mylam = [&](int age) { cout << "my name is: " << name << ", age is: " << age << endl; }; return mylam;}int main(){ string name = "CPP"; auto&& h
2016-10-25 10:05:24
372
原创 给容器快速赋值
#include #include using namespace std;template class InsertPoxy{ T & m_poxyContain;public: InsertPoxy(T & poxyContain):m_poxyContain(poxyContain){ }; template InsertPoxy& operator()(U elem)
2016-10-22 22:39:29
1236
转载 值得推荐的C/C++框架和库
值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz
2016-04-09 20:28:48
393
转载 opencl简介
转载至: http://blog.youkuaiyun.com/leonwei/article/details/88937961 Hello OpenCL 这里编写一个最简单的示例程序,演示OpenCl的基本使用方法: 1.首先可以从Nvdia或者Amd或者Intel或者所有OpenCl成员的开发者网站上下载一份他们实现的OpenCL的SDK。虽然不同公司支持
2016-03-16 19:04:04
433
原创 常用技巧记录
@@:sqlserver: sa Chen8023@@:查看指定端口的状态: netstat -ano|findstr "80"@@:优秀的进程管理工具:Process Explorer@@:windebug配置符号文件:srv*c:\symbols*http://msdl.microsoft.com/download/symbols !analyz
2015-12-21 17:44:06
458
原创 oracle存储过程一个陷阱
1:如下oracle存储过程(同事发现):create or replace procedure test is strTaskID varchar2(50):='123321'; CURSOR Cursortt is SELECT * FROM T_FCVSTASK where strTaskID = strTaskID and 1=1; c
2015-11-10 20:59:05
358
原创 python编程环境搭建
1:安装 Eclipse+PyDev PyDev解压后的features、plugins放在eclipse中同名目录即可2:然后:窗口---->首选项----->Iterpreters----->Python Iterpreter 新建python解释器的路劲即可
2015-11-09 21:24:06
472
原创 c++用gsoap调用webservice备忘
1:用wsdl2h 生成中间头文件 >> wsdl2h example.wsdl -------->> example.h2:用soapcpp2 生成代理类>> soapcpp2 -C -i -x -I “import path” example.h 注:生成的代理类cpp文件去掉预编译选项,在使用的cpp文件中包含 example.nsmap 再包含代理类头文件
2015-11-09 21:08:25
393
原创 oracle数据库的导出与导入备忘
1: 导出步骤$exp username/password@orcl file=E:/back.dmp owner=username 2:导入步骤create user username identified by password 创建用户,会使用默认的表空间grant dba to username 给用户授权,直接授给管理员权限$imp user
2015-11-09 17:27:19
312
原创 Excel合并单元格相关代码
// Excel合并单元格相关代码(不能直接用,只是片段)void xxx_excel(){ _WorksheetPtr mm_pWorksheet; RangePtr pRangePtr, pMyTmp; CString strAddress; pRangePtr = mm_pWorksheet->GetRange(_variant_t(strAddre
2015-09-15 21:16:57
672
原创 用MSXML为xml添加属性
VOID XXX_XML(){ IXMLDOMDocumentPtr pXmlDocument; if ( XmlDocument.CreateInstance(__uuidof(XML::DOMDocument)) != S_OK ) { return; } // Do load IXMLDOMElementPtr xmlNode = pXmlDocument->selectS
2015-09-15 20:48:19
611
转载 字符集之间转换实现函数
//下面同一般编程。gSoap会把字符串当成utf8编码处理。//下面附带gb2312与utf8编码之间的转换函数://gb2312转utf8 void Gb2312ToUtf8(char* pstrOut, u32 dwOutLen, const char* pstrIn, u32 dwInLen) { #ifdef WIN32 int i = MultiByteToWid
2015-09-15 20:40:08
1028
原创 生成最短摘要
给定一段产品的英文描述,包含M个英文字母,每个英文单词以空格分隔,无其他标点符号;再给定N个英文单词关键字,请说明思路并编程实现方法代码如下:/* 算法思想:从头扫描输入字符串,找到第一个在关键字中出现的单词 记录其偏移量,继续往后扫描得到出现在关键字中的第二个单词(可以 和第一个相同),一直到此子串包含所有的关键字,此时也需要记录 其偏移量,计算其大小;接下来继续从以上子串中的第
2014-01-08 21:20:55
810
原创 组合之01转换法
m个数中取n个数的所有组合问题从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为“01”组合,同时将其左边的所有“1”全部移动到数组的最左端代码如下:#include using namespace std;#define SIZE 100struct data{ int elem; int b;};inline void
2014-01-06 11:01:36
1391
原创 全排列之字典序法
(1) 对于输入的字典序排列,反向查找第一对满足a[j](2) 仍旧反向查找第一个下标k,使得 a[j](3) 交换a[j]和a[k](4) 翻转a[j+1]~a[end]此法能适应有重复元素的系列代码如下:#include #include using namespace std;int cmp(const void* a, const void* b
2014-01-05 20:15:58
754
原创 java与c/c++会怎么对待a = a++;
无意中看到这样一个问题:int a = 1;a = a++;此时 a = ?,我自己测试了一下,vs2008中得到a = 2 ;在linux中用gcc编译得到的结果也是2,而当用java语言时,在JDK7环境下得到的结果a = 1;为了搞清楚是怎么回事,进行了一点研究,如下:在vs2008中有这样的汇编代码:a = a++;00881445 8B 45 F8
2014-01-05 10:05:44
914
原创 败者树
一:胜者树和败者树都是完全二叉树,是树形选择排序的一种变型。每个叶子结点相当于一个选手,每个中间结点相当于一场比赛,每一层相当于一轮比赛。二:不同的是,胜者树的中间结点记录的是胜者的标号;而败者树的中间结点记录的败者的标号。三:胜者树与败者树可以在log(n)的时间内找到最值。任何一个叶子结点的值改变后,利用中间结点的信息,还是能够快速地找到最值。在k路归并排序中经常用到#includ
2014-01-03 22:09:00
926
原创 求解500万以内的亲和数
代码来自《编程艺术系列》这段代码很优雅、很有内涵,如下:#include using namespace std;#define MAXVAl 5000000int sum[MAXVAl+1];int main(int argc, char* argv[]){ int i, j; for(i = 0; i <= MAXVAl; i++){
2014-01-01 22:34:53
748
原创 双端LIS问题
从一列数中筛除尽可能少的数使得从左往右看,这些数是从小到大再从大到小的(网易)代码如下:#include #include using namespace std;int find(int* arr, int len, int n){ int left = 0, right = len, mid = (left+right)/2; while (left <= right){
2013-12-31 17:03:51
1193
原创 寻找满足条件的多个数
输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来 代码来自编程艺术,如下:#include #include using namespace std;list lst;void m_findSum(int sum, int n){ if(sum < 1 || n < 1) re
2013-12-30 22:01:03
496
原创 最长递增子系列(LIS)
最近遇到的,此代码来自《算法导论》 具体代码如下:#include #include using namespace std;#define INF -99999int find(int* arr, int len, int n){ int left = 0, right = len, mid = (left+right)/2; while (lef
2013-12-30 21:54:49
467
原创 寻找满足条件的两个数
一: 输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字 代码如下:#include #include using namespace std;struct m_elem{ int unm; int data;};struct m_pair{ int f, s; m_pair* next; m_pair(int ff, int ss) :
2013-12-24 20:38:52
481
原创 二分查找
无意中看到二分查找几个字眼,就情不自禁的构思它的实现代码,特此写下来当是练手一:在此有两种方法的实现,一种是递归的另一种是非递归的,代码如下:#include using namespace std;// recursionint m_binarySearch(int arr[], int left, int right, int num){ if(right >= left
2013-12-23 20:19:14
415
原创 堆排序
一:优先队列是一种思想是一种需求,实现它的方法有多种(可以用单链表、二叉查找树等数据结构),但是最常用的实现是使用二叉堆二:与二叉查找树一样其也有两个性质,结构性质和堆序性质;支持两种基本操作deleteMin、insert(此处用最小堆)三:实现二叉堆数据结构及两种基本操作的代码如下:
2013-12-22 08:13:41
457
原创 shell排序
虽然代码不多,但是逻辑性很强一:shell排序,代码如下:/* 用到的增量系列 h = h*3 + 1, 所以逆系列为 h = (h-1)/3; */#include using namespace std;void m_shellSort(int* arr, int nLen){ int h = 1; // 得到系列最大值 while(h
2013-12-19 12:25:51
444
原创 归并排序
不动手敲一敲不知道会不会,把基础搞踏实了一:归并排序,代码如下:#include using namespace std;#define ARR_SIZE 200void m_merge(int* arr, int left, int middle, int right){ int tmp[ARR_SIZE]; int pos = left, p_be
2013-12-18 15:40:04
425
原创 快速排序
把握宏观思想,温故而知新一:回过头来看学过的东西,抛开资料自己动手敲一遍,如下是快速排序:#include using namespace std;inline void m_swap(int* a, int* b){ int tmp; tmp = *a; *a = *b; *b = tmp;}void m_qsort(int* arr, int left, int
2013-12-17 20:28:17
472
原创 两个字符串是否包含
以下是三个小程序,我需要多多动手,所以也顺便记下以后方便(1):两个字符串是否包含,程序如下:/* 这里没有考虑大写、重复的情况,不过稍加修改就能 适应,用了hashtable的方法 */#include using namespace std;bool m_iscontain(char* f_str, char* s_str){ char fl
2013-12-17 09:30:36
494
原创 左旋转字符串
把学过的东西记下来,因为我记性不好!一:对左旋转字符串的两种我比较中意的解法:(1):三次翻转法,代码如下:#include using namespace std;void m_reverse(char* start, char* end){ char tmp; while(start < end){ tmp = *start; *start = *end;
2013-12-16 21:00:13
464
microhttpd的c++封装接口
2018-01-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人