自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 问答 (1)
  • 收藏
  • 关注

原创 json与C++结构体互相转换

代码github地址用于在C++结构体和json/xml/json/libconfig之间互相转换 json/xml只需要头文件, 无需编译库文件 json缺省支持,其他的需要修改config.h开启相应功能 以下例子全部以json为例,其他的类似,具体可以参考x2struct.hpp里面x2struct::X的api定义目录基本用法必需节点别名继承位...

2018-02-19 21:32:17 28051 29

原创 samba环境下sublime text使用gopls

这里说一下要做路径替换的原因:本地和远端的文件的路径是不一样的,比如sublime打开了x:\gocode\example.go,但是远端是不存在这个文件的,远端对应的文件是/home/helloworld/gocode/example.go,所以要进行路径替换,否则Windows发过去的文件路径远端识别不了,远端返回的文件路径本端也识别不了。,发现作者遇到的问题和我的很相似,本想直接用,但是作者的路径替换是写死的,想搞成个可配置的,所以参考了作者的方法重新撸了一遍。网上搜了一下,搜到了篇。

2023-03-25 19:24:37 190

原创 用redis做榜单,分数相同时根据时间先后排序

redis榜单分数相同时按时间排序

2021-12-26 18:11:14 3452

原创 xpack原理分析

经常有网友问xpack(原来的x2struct)的实现原理,这里用一个文章大概讲解一下。

2021-06-06 14:11:32 3904 2

原创 Golang读写锁读锁重复获取的问题

遇到Golang的sync.RWMutex的一个坑,同一个协程重复获取读锁导致的死锁为题。代码如下var ( l sync.RWMutex)func f1() { l.RLock() defer l.RUnlock() f2() // ...}func f2() { l.RLock() defer l.RUnlock()...

2018-11-09 19:05:04 3562 3

原创 mongo-cxx-driver的简单封装。

代码在:https://github.com/xyz347/mongoxclient受Golang启发写的,可以像golang一样直接操作结构体。只有基本接口,还不是很完备。范例:(里面很多代码是用来初始化结构体的,和封装没关系,封装的接口后面加了注释方便区分)#include <iostream>#include <mongocxx/client.hpp&gt...

2018-11-03 20:25:09 1568

原创 C++ UTF8字符串截断

有个场景是如果字符串超出一定的长度需要进行截断,由于std::string是按字节存储,直接substr会导致utf8被错误的截断,导致客户端显示异常。写了个用来处理UTF8编码下的截断函数:#include <iostream>#include <string>using std::cout;using std::endl;std::string Utf8Su...

2018-04-18 17:48:07 2516

原创 一种改进哈希冲突的方法

通过双向链表来改善冲突的处理方式。具体看源文件注释,哈希计算方法一个抄Linux的,一个是网上找的,均有说明。头文件#ifndef __BFLS_HASH_H#define __BFLS_HASH_H#ifdef __cplusplusextern "C" {#endiftypedef unsigned int (*bfls_hash_hashf)(void *da

2016-01-21 20:53:57 433

原创 C/C++ 获取不带路径的文件名的方法

在源码中有时候需要用到文件名,比如log的时候一般都会把文件名打印出来,__FILE__这个宏就是干这事用的。但是这个宏会把路径也带进来,而有时候我们只需要一个简单的文件名而已。实现方法,通过shell或者Makefile自带的函数,去掉文件的路径,用宏的方式传递进去即可。Makefile:%.o:%.c gcc -o $@ -c $如果是用的blade这个构建工

2016-01-21 20:29:59 5389

原创 红黑树

秉承talk is cheap, show me the code的理念,废话不多说,上代码。头文件#ifndef __BFLS_RBTREE_H#define __BFLS_RBTREE_H#ifdef __cplusplusextern "C" {#endif/* 遍历顺序 */typedef enum{RB_TREE_ORDER_PRE,R

2016-01-16 21:57:16 356

空空如也

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

TA关注的人

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