
C++
文章平均质量分 89
cjf_wei
这个作者很懒,什么都没留下…
展开
-
Linux下使用CppUnit组织单元测试
本文介绍CppUnit单元测试的一些基础知识和使用方法,其中的一些样例来自于源码,安装和一些基础介绍也可以参见文献[1,2]。原创 2016-12-04 11:11:30 · 1353 阅读 · 0 评论 -
ZeroMQ的订阅发布(publish-subscribe)模式
ZeroMQ的订阅发布模式是一种单向的数据发布,当客户端向服务端订阅消息之后,服务端便会将产生的消息源源不断的推送给订阅者,本文的示例代码来源于文献[1]示例代码的修改。发布-订阅图示 发布者使用PUB套接字将消息发送到队列中,订阅者使用SUB套接字从队列中源源不断的接收消息。新的订阅者可以随时加入,但之前的消息是无法接收到的;已有的订阅者可以随时退出;订阅者还可以添加“过滤器”用来有选...原创 2018-04-22 10:15:26 · 5816 阅读 · 0 评论 -
C/C++中libcurl的使用-提交 Http Post请求
之前介绍了使用libcurl的HTTP GET将url地址中内容下载到本地 C/C++中libcurl的使用-Http GET方法使用详解,在更早的文章Linux下使用CURL模拟用户提交post表单中也介绍过在Linux环境使用curl命令提交POST表单。本文介绍使用libcurl的HTTP POST实现表单的提交,并获取表单的结果。libcurl的相关接口已经在上一篇文章中介绍,本文只介原创 2018-01-28 11:08:11 · 30774 阅读 · 0 评论 -
Linux环境下点分十进制和整型IP间的相互转换
本文介绍Linux环境下使用Unix网络编程实现点分十进制和整型ip地址间的相互转换,以及那些应该规避的问题。 先从示例代码讲起://输入点分十进制的IP,将其转换成整型后,再反向转换进行验证#include #include #include #include #include using namespace std;unsigned int IPtoInt(char原创 2018-01-07 11:01:07 · 11372 阅读 · 0 评论 -
C/C++中libcurl的使用-Http GET方法使用详解
Curl是一个命令行工具,用于以特定的URL语法进行数据传输。libcrul是一个用于完成此项工作的curl库。借助libcurl,使用C/C++可以完成文件的下载,HTTP get,post等很多工作。本文介绍使用libcurl的C API完成HTTP中的GET操作。 下面的代码用于使用HTTP get协议,发送请求到一个网址,当请求被正确响应后,将响应的结果页面内容写成一个文件,保存在本地磁原创 2018-01-21 10:24:17 · 28523 阅读 · 1 评论 -
Thrift使用入门-RPC服务
Thrift是一个跨语言的服务部署框架,除了提供性能优异的序列化/反序列化功能,还提供了RPC服务,相对于Protocol buffers,它支持的语言更加广泛。本文介绍使用Thrift的RPC实现client和server间的通信。对于Thrift的介绍和语法说明可以参见文献[1-2]。原创 2017-12-18 20:30:48 · 2343 阅读 · 1 评论 -
Linux离线(手动)升级GCC-4.8
本文介绍在系统无法连接互联网的情况下,如何升级GCC。离线和在线升级的主要区别在于,如果可以联网,在升级gcc前的需要安装的依赖包,可以通过运行gcc安装包下的脚本自行下载安装,免去了很多的麻烦。原创 2017-11-19 10:13:18 · 5850 阅读 · 0 评论 -
C++中关于函数的extern链接性以及extern关键字
C++中extern关键字主要有三种作用,即声明变量的链接性、函数的链接性、以及语言的链接性。所谓的链接性(linkage)是指名称如何在不同的编译单元间共享。与其相应的是作用域(scope),它描述的是名称在一个编译单元的多大范围内可见。原创 2017-03-26 21:48:07 · 4888 阅读 · 0 评论 -
使用hash法高效替换多个字符
在项目中经常要遇到要对字符串中的特殊的字符进行替换,例如字符串中如果多了个回车键、换行符或是制表符,那么将该string写成行表形式的数据时,该行数据将不能满足需求。而如果替换过程中,不注意算法的设计,替换的时间复杂度将很高。本文介绍使用hash的方式,以空间的浪费的代价来换取替换时间的降低,使得时间复杂度达到O(N).原创 2017-05-28 18:32:23 · 1182 阅读 · 0 评论 -
libconfig++示例详解
libconfig++是一个用于处理结构化配置文件的简单库。libconfig++的配置的文件格式非常简洁,可读性也非常的好,而且是type-aware,普通的配置文件读取后存取的类型为字符串,libconfig++可以“识别”整形的配置。libconfig++的配置形式也非常的灵活。此外,libconfig++还可以修改配原创 2017-02-18 20:13:43 · 12037 阅读 · 4 评论 -
Linux下使用CURL模拟用户提交post表单
本文介绍在Linux下使用CURL命令提交post请求,在需要手动重复提交post表单时,使用本文介绍的方法可以达到事半功倍的效果。原创 2017-04-16 10:35:01 · 18554 阅读 · 0 评论 -
基于zookeeper的统一命名服务及实现
在分布式调度系统中可以使用zookeeper实现统一命名服务,以获得类似于UUID的全局唯一名称。借助ZNODE顺序节点的特性,本文通过创建临时顺序节点来获得统一命名。使用zookeeper创建顺序节点时,成功创建的每个节点都会返回一个编号,使用该编号以及给定的名称即可生成具有特定含义的统一名称。原创 2017-04-09 10:01:23 · 2577 阅读 · 0 评论 -
C++中的容器map和set
在C++标准模板库STL中将map和set归为关联式容器(associative container)。它们就像一个关联数组,把一个元素(key)映射到另一个元素(value),当然对于set来说,其value值就是key值。因为set和map的实现非常类似,所以它们总是成对出现,所以本文从更具代表性的map容器说起,归纳下那些在C++中可用的map容器。原创 2016-12-24 21:19:01 · 681 阅读 · 0 评论 -
使用Trie树实现的MAP
最近看到一种基于Tire树的map结构,其键值类型为string类型,查找速度很快。文章[1]中分析了这种‘TrieMap’原理,对比了其和std::map,std::unordered_map的查找速度。基于Trie树和文章中提到的TrieMap设计,进行实践,给出自己构造的TrieMap以供参考学习。Trie树,又称单词查找树、字典树。是一种哈希树的变种,是一种用于快速检索的多叉树结构。原创 2016-12-10 21:15:57 · 1894 阅读 · 0 评论 -
C/C++中正则表达式库RE2的使用
RE2是Google开源的正则表达式库,RE2是多语言支持的,提供对C/C++,Python,Ruby等,本文介绍C语言的RE2的正则库。正则表达式在工程实践中是非常有用的,可用于信息提取,内容比对,替换等。安装 主要步骤,下载安装包[GitHub地址],解压,编译,安装。需要说明的是较新版本源码添加了对C++11的支持,同时也需要较高版本g++的支持,本文选择tag为re2-2016-02...原创 2018-07-14 21:21:29 · 11752 阅读 · 0 评论