![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
CSLDBLYDX
这个作者很懒,什么都没留下…
展开
-
murmurhash
murmur hash 是一个高性能,低冲突率的hash算法,由Austin Appleby 2008 年第一次发布一下是他关于算法一些参数发现的discussionDiscussion (Note, this was written for MurmurHash 1.0 and is only loosely applicable to 2.0) I原创 2017-01-15 17:39:47 · 734 阅读 · 0 评论 -
linux下使用protobuf实现简单配置功能
前言: 程序一般需要load一些参数列表,一般来说我们可以通过linux自带的命令行解析函数来搞定(getopt_long,如果需要了解的man一 下,manpage里面是有example的),但是对于参数太多,我们不可能写满一屏幕进行传参吧,当然,我们的输入在linux里面也是有限制的。所以呢,一般的做法是load一个配置文件,进行解析;最近在研究了一下protobuf的使用,我们转载 2015-09-11 23:44:46 · 528 阅读 · 0 评论 -
boost::bind
最近在几经波折之后,终于对于boost::bind有点理解了。对于习惯了其他语言的人来说,boost::bind是个挺神奇的东西,它可以将你的方法适配成任何其他的方法。其实这得益于c++的模板以及操作符重载,去看boost::bind的实现就会发现它是一个有n多重载的函数,这些重载主要是为了适应函数的参数个数。 其实boost::bind的原理是函数对象,而函数对象就是一个重载了(转载 2015-09-01 14:04:23 · 333 阅读 · 0 评论 -
boost::lexical_cast
boost::lexical_cast为数值之间的转换(conversion)提供了一揽子方案,比如:将一个字符串"123"转换成整数123,代码如下:string s = "123"; int a = lexical_castint>(s); 这种方法非常简单,笔者强烈建议大家忘掉std诸多的函数,直接使用boost:: lexical_cast。如果转换发生了意外,lex转载 2015-09-01 13:53:18 · 405 阅读 · 0 评论 -
ctag 简述
Vi大家都很熟悉,某些情况下它是我们在Linux下唯一可用的文本编辑器。其实我们平时所指的VI其实是VIM(ViImproved,VI增强版)。有人常常拿VIM和emacs比较,VIM尽管不象emacs那样有那么多的功能,但是比emacs更方便、好用。VIM简单易用,只要看看VIM自带的vitutor,大约只要20分钟就能掌握VIM的用法。对于Linux下的C/C++的程序员,使用VIM+Ctag转载 2015-09-01 11:22:40 · 557 阅读 · 0 评论 -
c++ 连redis
今天,本人来学习如何用C++来操作redis数据库。通过hiredis.h接口来实现,目前只能在Linux环境使用。hiredis.h的下载地址为:https://github.com/redis/hiredis主要包括如下四个方法1. redisContext* redisConnect(const char *ip, int port)该函数用来连接redis数转载 2015-09-01 16:28:12 · 759 阅读 · 1 评论 -
c++异常处理机制示例及讲解
这两天我写了一个测试c++异常处理机制的例子,感觉有很好的示范作用,在此贴出来,给c++异常处理的初学者入门。本文后附有c++异常的知识普及,有兴趣者也可以看看。 下面的代码直接贴到你的console工程中,可以运行调试看看效果,并分析c++的异常机制。 #include "stdafx.h" #include #include #incl转载 2015-06-12 11:59:15 · 290 阅读 · 0 评论 -
C++ 内存分配(new,operator new)详解
一 new运算符和operator new(): new:指我们在C++里通常用到的运算符,比如A* a = new A; 对于new来说,有new和::new之分,前者位于std operator new():指对new的重载形式,它是一个函数,并不是运算符。对于operator new来说,分为全局重载和类重载,全局重载是void* ::operator new(转载 2015-01-02 18:37:10 · 404 阅读 · 0 评论 -
linux codeblick无法粘贴的问题
ubuntu 12.04codeblocks 10.05问题:使用codeblocks编程运行时终端不能复制粘贴解决:settings-->environment-->generalsettings-->Terminal to launch console programs:把方框里默认的终端改成 gnome-terminal -t $TITLE -x其实这个也就是li转载 2014-09-30 15:23:25 · 593 阅读 · 0 评论 -
C/C++中static关键字详解
静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制 如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用于在该函数的所有调用中表示这个变量。这个对象将只在转载 2014-09-25 14:04:33 · 295 阅读 · 0 评论 -
vector和list区别【转】
stl提供了三个最基本的容器:vector,list,deque。vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率。l转载 2014-09-25 14:03:26 · 401 阅读 · 0 评论 -
va_list、va_start、va_arg、va_end的原理与使用
va_list、va_start、va_arg、va_end的原理与使用概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论.定义大家先看几宏.在VC++6.0的include有一个stdarg.h头文件,有如下几个宏转载 2017-07-22 18:37:17 · 408 阅读 · 0 评论