![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 76
jfcat
做有趣的事情,使自己更快乐!
展开
-
(转)C语言柔性数组讲解
先来看一个示例#include<stdio.h>typedef struct _SoftArray{ int len; int array[];}SoftArray;int main(){ int len = 10; printf("The struct's size is %d\n",sizeof(SoftArray));}我们可以看出,_SoftArray结构体的大小是4,显然,在32位操作系统下一个int型变量大小刚好为4转载 2021-08-25 20:26:28 · 342 阅读 · 0 评论 -
(转)C/C++常用头文件及函数汇总
C/C++头文件一览#include <assert.h> //设定插入点#include <ctype.h> //字符处理#include <errno.h> //定义错误码#include <float.h> //浮点数处理#include <iso646.h> //对应各种运算符的宏#include <limits.h> //定义各种数据类型最值的常量#includ...转载 2021-08-25 19:35:24 · 2105 阅读 · 0 评论 -
libmemcached的一致性hash实现源码分析
由于工作上对多语言之间数据缓存一致性的需要,个人分析了libmemcached的实现,对底层一致性的实现有了一些了解,这里分享一些分析的一些过程,也给自己做个笔记。我使用是php,从php的扩展开始分析应该来说是最方便的。这里从php扩展的Memcached::add方法入手去找到需要的内容。方法文件为php_memcached.cadd方法的php扩展代码如下(文件m原创 2013-03-29 21:57:15 · 2905 阅读 · 0 评论 -
Linux下用openssl库做md5加密
这篇文件借鉴网上的文件,然后自己做了一些修改,主要是对测试的过程中发现一些不一致和不详尽导致一些麻烦的解决openssl安装Centos yum install openssl openssl-devel#include #include #include #include int main(int argc, char** argv) { MD5_CTX原创 2013-03-11 16:39:27 · 5480 阅读 · 1 评论 -
编程珠玑第二章的算法实现
我这里由于是对程序算法的实现,没有弄这么大的数据量(40亿的32位整数对于文本文件来说估计要3G以上的存储空间),我这里只使用4千万的数据量,也就是百分之一的量,不多说直接上代码。#include #include #include #include #include #define GETBIT(NUM, IDX) ((NUM>>(IDX))&1)#define INI原创 2012-11-26 20:34:41 · 694 阅读 · 0 评论 -
编程珠玑第1章的算法实现
断断续续看了几天,在实现几个算法后,总算把这个代码写出来了,测试耗时在10s 算法真强大:)#include #include #include #include #define MAX 1024*1024*1024typedef unsigned char BYTE;/*enum bool {1,0};*/int main(){ char str[10]原创 2012-10-31 23:23:41 · 697 阅读 · 0 评论 -
快速排序--C语言
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 假设要排序的数组是A[1]……A[N],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它的数都放到它前面,所有比它大的转载 2012-10-28 19:42:38 · 884 阅读 · 4 评论 -
插入排序算法C语言实现
#include #include //插入排序voidmain(){ int a[]={0,2,3,7,5,2,9,3,1,98,29}; int t; for(int i=1;i<sizeof(a)/sizeof(*a);i++) { //将赋值移除内循环进行加速 t = a[i]; int j;原创 2012-10-27 16:14:13 · 1387 阅读 · 0 评论 -
使用qsort进行快速排序
#include #include static int compare(const void *p1, const void *p2){ if (*(int *)p1 > *(int *)p2) return 1; else if (*(int *)p1 < *(int *)p2) return -1; else原创 2012-10-27 15:36:05 · 610 阅读 · 0 评论 -
归并排序算法C++的实现
#include using namespace std;void merge(int a[], int first, int mid, int last, int c[]){ int i = first,j = mid + 1; int m = mid, n = last; // k 的值与 i的值必须相等,要不无法把c的值回写给a int k = fi原创 2012-10-27 13:23:33 · 667 阅读 · 0 评论 -
C语言中的数据对齐问题
之前看过一些文章写的对齐的原理或者说是方式,有的不尽完备,有的根本是以偏盖全,没有揭露数据对齐问题的实质。本人经过多次测试及搜索相关资料,总结出数据对齐问题的两个判断原则跟大家分享。文中有很多表述不够专业,请见谅。 一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。例一: #include using namespace转载 2012-09-25 22:45:47 · 2411 阅读 · 2 评论 -
C++实现排列组合
很多地方都遇过排列组合,比如计算问题的规模,数据的大小,占用磁盘空间多少等。原理部分借鉴网上一篇文章,道理已经说的很清楚就不重复了。(1) 全排列:全排列表示把集合中元素的所有按照一定的顺序排列起来,使用P(n, n) = n!表示n个元素全排列的个数。例如:{1, 2, 3}的全排列为:123;132;213;231;312;321;共6个,即原创 2013-04-10 23:18:56 · 23368 阅读 · 1 评论 -
linux下用C写正则匹配IP和邮箱
一时想娱乐一下,写了一段小程序,使用linux的正则库匹配ip和email地址#include #include #include #include #include #include #include using namespace std;string strtolower(string str);int main(int argc, const cha原创 2013-06-08 17:58:19 · 2470 阅读 · 0 评论