自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (3)
  • 收藏
  • 关注

转载 gcc -I -L

1简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3多个程序文件的编译4检错5库文件连接5.1编译成可执行文件5.2链接5.3强制链接时使用静态链接库1简介GCC 的意思也只是 GNU C Compiler 而已。

2015-04-30 20:04:38 461

转载 linux 动态库使用

一.动态库的基本概念1. 动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序。动态链接库是目标文件的集合,目标文件在动态链接库中的组织方式是按照特殊方式形成的。库中函数和变量的地址是相对地址,不是绝对地址,其真实地址在调用动态库的程序加载时形成。2. 动态链接库的名称有别名(soname), 真名(realname)和链接名(linker

2015-04-29 16:15:51 329

转载 变长函数参数

#include #includevoid fun(int a,...){va_list pp;va_start(pp,a);do{printf("param =%d\n",a);a=va_arg(pp,int);//使 pp 指向下一个参数,将下一个参数的值赋给变量 a}while (a!=0);//直到参数为 0 时停止循环}void main(){

2015-04-29 12:11:12 284

转载 sizeof offsetof

offsetof的来龙去脉  通过前面的举例,你可能对如何使用offsetof已经不陌生了吧。offsetof对那些搞C++的人可能很熟悉,因为offsetof类似于sizeof,也是一种系统操作符,你不用考虑它是怎么定义的。这个操作符offsetof的定义可以在ANSI C 编译器所带的stddef.h中找到。在嵌入式系统里,不同开发商,不同架构处理器和编译器都有不同的offsetof定

2015-04-29 11:47:12 459

转载 TCMalloc小记

TCMalloc小记分类: C&C++2013-07-16 08:53 9405人阅读 评论(0) 收藏 举报目录(?)[+]周末抽空看了一下tcmalloc,了解了个大概。下面记录一下。一. 原理tcmalloc就是一个内存分配器,管理堆内存,主要影响malloc和free,用于降低频繁分配、释放内存造成的性能损耗,并且有效地控制内

2015-04-20 22:15:16 715

转载 封装转换

简介本文介绍一个基于FFMPEG的封装格式转换器。所谓的封装格式转换,就是在AVI,FLV,MKV,MP4这些格式之间转换(对应.avi,.flv,.mkv,.mp4文件)。需要注意的是,本程序并不进行视音频的编码和解码工作。而是直接将视音频压缩码流从一种封装格式文件中获取出来然后打包成另外一种封装格式的文件。传统的转码程序工作原理如下图所示:上图例举了一个举例:FLV(视

2015-04-15 17:32:27 615

转载 YUV视频格式到RGB32格式转换的速度优化 上篇

http://blog.csdn.net/housisong/archive/2007/10/31/1859084.aspxtag: YUV,YCbCr,YUV到RGB颜色转换,YUV解码,VFW,视频,MMX,SSE,多核优化   摘要: 我们得到的很多视频数据(一些解码器的输出或者摄像头的输出等)都使用了一种叫YUV的颜色格式;本文介绍了常见的YUV视频格式(YUY2/YVYU

2015-04-15 09:07:48 469

转载 extern c , c++ 调用c

比如说你用C 开发了一个DLL 库,为了能够让C ++语言也能够调用你的DLL 输出(Export) 的函数,你需要用extern "C" 来强制编译器不要修改你的函数名。通常,在C 语言的头文件中经常可以看到类似下面这种形式的代码:C代码  #ifdef __cplusplus  extern "C" {  #endif    /**** so

2015-04-08 17:19:18 420

原创 map 和multimap 的区别

map>mm; mm[1].push_back(2); multimap>m; vector v; m[1].push_back(2);

2015-04-08 10:50:26 1080

转载 multimap

在multimap中,同一个键关联的元素必然相邻存放。基于这个事实,就可以将某个键对应的值一一输出。1、使用find和count函数。count函数求出某个键出现的次数,find函数返回一个迭代器,指向第一个拥有正在查找的键的实例。2、使用lower_bound(key)和upper_bound(key)      lower_bound(key)返回一个迭代器,指向键不小

2015-04-08 10:43:14 440

转载 git &github

作者:戴嘉华转载请注明出处,保留原文链接和作者信息目录前言仓库(Repository)源仓库开发者仓库分支(Branch)永久性分支暂时性分支工作流(workflow)总结参考资料前言(本文假设各位已经对基本git的基本概念、操作有一定的理解,如无相关git知识,可以参考Pro Git这本书进行相关的学习和练习)很多项目开

2015-04-05 20:55:21 399

转载 git 分支

举一个例子,假设我是一名PingHackers网站的开发者,已经把源仓库fork了,并且clone到了本地。现在要开发PingHackers网站的“讨论”功能。我在本地仓库中可以这样做:step 1: 切换到develop分支 >>> git checkout developstep 2: 分出一个功能性分支 >>> git checkout -b featu

2015-04-05 20:45:05 244

转载 字符串消除

小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的:1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"AB"和"B"拼成新的字符串"ABB"。2)上述消除会反复一轮一轮进行,直到新的字符串不包含相

2015-04-05 17:32:25 711

转载 redis 应用场景

1.  MySql+Memcached架构的问题  实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题:  1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。  

2015-04-05 13:00:55 320

转载 redis 内存管理

神马是redis?redis是一个开源的,牛B的键值数据库。由于键可以被保存为字符串,列表,哈希表,集合和有序集合,redis有时候也被称作数据结构服务器。这句蹩脚的翻译来自redis官网的介绍。想进一步了解的可以去它官网瞅瞅。目前redis已归入vmware门下。下面,切入正题。redis是用c编写的。用c编写的程序都要面临一个很重要也很头疼的问题----内存管理。很多时候,不当的内存管理会

2015-04-05 11:18:09 499

转载 tcp linux 内核

2015-04-05 10:43:55 266

转载 蓄水池 抽样

蓄水池抽样问题描述的是,在一个无穷尽的样本中,要求随即抽取一些样本,这些样本被抽取到的概率必须保持一致。      一个蓄水池就可以理解为无穷大的样本空间。      解决方案就是蓄水库抽样(reservoid sampling)。主要思想就是保持一个集合,作为蓄水池,依次遍历所有数据的时候以一定概率替换这个蓄水池中的数字。      其伪代码如下:Init : a

2015-04-05 09:57:07 466

转载 kmp

继续拿之前的例子来说,当S[10]跟P[6]匹配失败时,KMP不是跟暴力匹配那样简单的把模式串右移一位,而是执行第②条指令:“如果j != -1,且当前字符匹配失败(即S[i] != P[j]),则令 i 不变,j = next[j]”,即j 从6变到2(后面我们将求得P[6],即字符D对应的next 值为2),所以相当于模式串向右移动的位数为j - next[j](j - next[j] = 6

2015-04-04 18:47:01 288

原创 kmp

class Solution {public: int kmpSearch(char *s,char *p,int next[]){ int i=0; int j=0; int sLen=strlen(s); int pLen=strlen(p); while(i<sLen&&j<pLen) { if(j==-1||s[i]=

2015-04-04 17:30:39 255

转载 trie

#1014 : Trie树时间限制:10000ms单点时限:1000ms内存限制:256MB描述小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,

2015-04-04 17:24:51 346

转载 二分查找

面试常让写二分查找或其扩展的程序,以前总觉得很简单,但是真动手写起来,细节很多,容易出错的地方也很多,真是秒杀眼高手低的利器,本节就二分查找以及相关扩展程序都实现一下,同时将可能出错的地方以及需要注意的细节也一并说明,水平有限,欢迎补充。内容如下:1)二分查找元素key的下标,如无 return -12)二分查找返回key(可能有重复)第一次出现的下标,如无return -

2015-04-03 23:46:37 426

转载 memcached redis

1. Memcached简介Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高性能分布式内存缓存服务器。其本质上就是一个内存key-value数据库,但是不支持数据的持久化,服务器关闭之后数据全部丢失。Memcached使用C语言开发,在大多数像Linux、BSD和Solaris等POSIX系统上,只要安装了li

2015-04-03 20:51:47 235

转载 开源许可

2015-04-03 20:30:29 313

转载 数据库内核中的二分查找

数据库中的二分查找,更为复杂,需要实现一个通用型的二分查找算法,使用于各种不同的SQL查询场景。 InnoDB针对不同的SQL语句,总结出四种不同的Search Mode,分别为: #define    PAGE_CUR_G          1        >查询#define    PAGE_CUR_GE         2        >=,=

2015-04-03 14:41:05 377

转载 memory hierachy

2015-04-03 11:47:32 390

转载 内存管理 freelist

template class MemoryPool{public: MemoryPool(size_t size=EXPANSION_SIZE) { expandTheFreeList(size); } ~MemoryPool() { MemoryPool*nextPtr=next; while(nextPt

2015-04-03 10:49:04 746

c库函数 大全

c语言库函数使用大全

2012-05-27

数据结构 严蔚敏 源码

数据结构 严蔚敏 源码 所有算法源码 可以直接用的

2011-06-01

链栈的实现链栈的实现

链栈的实现链栈的实现链栈的实现链栈的实现链栈的实现

2010-10-18

空空如也

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

TA关注的人

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