
编程语言-CPP
_uniqs
由于种种原因,本博客已移植至
https://www.cnblogs.com/uniqs/
给您带来不便深表谦意
展开
-
std::map std::unordered_map 性能测试
先上图:win7 vs2013 debug版本:win7 vs2013 release版本:centos7.0 gcc4.8.5 -g (我是在虚拟机里,内存比较少,所以只分配了两万个):从测试结果可以看出:std::unordered_map插入、删除的性能会比std::map稍差一点,但是查找速度std::unordered_map和std::map的比例基本原创 2017-03-16 21:09:25 · 5082 阅读 · 0 评论 -
ANDROID接入华为SDK遇到的SHA256withRSA的问题解决
华为的SDK在登录时原来的实现思路是:1、C->SDK-C 2、SDK-C->C3、C->S 4、S->SDK-S5、SDK-S->S 6、S->C新版本中,把步骤4和步骤5省了,官方原文:游戏可以将gameAuthSign、 playerId、 appId和ts提交到游戏自己的服务器,使用文档附录一中的公钥进行验签,验签方式如下:a. 将 appId、 ts 和 playerId原创 2016-12-27 11:21:50 · 6150 阅读 · 1 评论 -
python调用c++ ctype list传数组 或者 返回数组
pycallclass.cpp:#include using namespace std;typedef unsigned char BYTE;#define MAX_COUNT 20struct tagOutCardResult_py{ BYTE cbCardCount; BYTE cbResultCard1; BYTE cbR原创 2017-11-22 14:12:32 · 12086 阅读 · 1 评论 -
glog简单使用
git clone https://github.com/google/glog.git/ .or:svn co https://github.com/google/glog.git/ .windows: download cmake (www.cmake.org) generate cmake .sln file(glog.sln).linux: cmake . &&...原创 2017-11-03 20:16:41 · 970 阅读 · 0 评论 -
c++转python
前两天有个一万多行的C++项目需要转PYTHON,逻辑非常复杂,要想看懂逻辑再用PYTHON写一遍预期时间比直接转要长,所以大家决定转PYTHON,遇到一些坑,这里简记一下。 最大的坑是数据结构,PYTHON没有数组,只能用LIST,C++的函数里数组直接传地址进去,可以进行各种操作,尤其是二维数组。PYTHON只能用LIST,二维数组只能嵌套LIST。C++可以传一个类对象的引原创 2017-11-13 13:37:45 · 34257 阅读 · 2 评论 -
mysql-connector-c windows x64 静态库 源码编译 vs2013
20160511亲测,最新VS2015最新mysqlconnector-c源码编译不过 VS目前的版本可能还不太完善(CONNECTOR-C++最新版 VS2015貌似也编不过)VS2013编译:一、下载mysql-connector-c源码(直接下载编译过的版本不行,尝试源码编译成功)https://downloads.mysql.com/archives/c-c/ 20160...原创 2016-05-12 13:42:58 · 3241 阅读 · 0 评论 -
暴雪hash murmurhash3 cityhash 性能对比
前些天要写一个小功能,想到了之前看到的暴雪hash,同事推荐murmurhash,于是写了点简单的代码测试了一下。后来在网上又找到了cityhash,于是加了进去测了一下。结论:暴雪hash算法 murmurhash64A算法 cityhash算法中,性能最高的是cityhash算法cityhash网址:https://github.com/google/cityhash linux可原创 2016-12-12 19:27:30 · 10434 阅读 · 2 评论 -
glog spdlog性能对比
先给结果:(单位:个消息/毫秒,越大越好)glog spdlog spdlog(file:line) spdlog(glogformat)406 458 372 275376 452 369 274381 453 ...原创 2019-04-06 20:49:51 · 9409 阅读 · 0 评论 -
centos 7.2 源码安装 gcc 8.2
sudo yum install glibc-devel bison flex texinfo build-essentialwget http://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.xz这一步如果服务器在本地或者是国内服务器速度较快,可以先用迅雷把它下下来再上传上去,会快一些。tar -xf gcc-8.2.0.tar.xzc...原创 2019-03-21 21:13:41 · 895 阅读 · 0 评论 -
uniqsmodel toluapp的一个c++版(tolua++是toluapp的一个早期分支)
由于tolua的坑实在是太深,int64搞来搞去就是导不出去,好不容易找了个tolua++的版本可以支持STL容器以及自定义模板还要自己封一个类,官方的例子都各种跑不起来,cpp调lua又不能调试,一个无法优化的工具实在让人很不爽,于是本人决定自己写一个。实现MODEL层的抽离。并且与protobuf兼容。直接生成pb文件。 官网:uniqsmodel 如果打不开,复制粘贴:...原创 2018-10-12 22:49:49 · 627 阅读 · 0 评论 -
uniqs的协议生成工具
由于他喵的GOOGLE PROTOBUF官网老是访问不了,于是本人决定自己写一个。有任何问题联系本人。可以直接下载:Uniqs协议生成工具直接下载https://download.youkuaiyun.com/download/u_1_n_2_i_3/10320175也可以SVN下载。 SVN地址:svn://gitee.com/uniqs/uniqsproto/官方网站:https://gitee.com/...原创 2018-03-31 20:34:08 · 1089 阅读 · 0 评论 -
uniqs的服务端框架(持续更新中)
声明:商业原因,此框架不再开源。如有需求,请联系本人(uniqs@163.com)。20171231。20190608:由于某些原因,我们已经放弃对windows的支持。说明:目前版本:1.0libdb 使用一种面向接口的编程思路写的一套数据库中间件,目前支持MYSQL数据库。libnet 使用一种面向接口编程的思路写的一套网络库test/testdblib 数据库测...原创 2017-09-04 12:50:38 · 658 阅读 · 0 评论 -
libevent windows编译
好久以前编译的,今天以为出问题了,重新编译了一把。步骤记一下libevent.org下载解压修改config.h.in为config.hvs2013=>VISUAL STUDIO TOOLS=>VS2013 x64 本机工具命令提示cd到路径中编译:nmake /f Makefile.nmake清理:nmake /f Makefile.nmake clean原创 2017-06-09 20:35:00 · 465 阅读 · 0 评论 -
c++11 线程 原子操作 sleep 获取时间
原子操作:#include atomic_boolatomic_int atomic_long线程:#include int funcReturnInt(const char* fmt, ...){ va_list ap; va_start(ap, fmt); vprintf( fmt, ap ); va_end(ap); return 0xabcd;}原创 2016-12-28 13:51:41 · 2418 阅读 · 0 评论 -
protobuf windows x64 bat 编译
真的需要编译吗?呵呵~~链接 : protobuf编译帮助(英文哦) 看不懂英文?没关系,哥来讲讲:首先安装git并把它配到path中,这个不会的自己百度。 再新建一个文件夹比如叫 to 然后 cd到此文件夹然后:C:\Path\to> git clone -b [release_tag] https://github.co...原创 2016-12-23 21:30:03 · 2222 阅读 · 0 评论 -
libiconv VS2013 x64静态库编译
一、下载1、下载 libiconv 当前版本:libiconv-1.14.tar.gzhttp://www.gnu.org/software/libiconv/#downloadinghttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz2、下载VS工程http://download.youkuaiyun.com/detail/ab...原创 2016-05-12 13:31:39 · 2035 阅读 · 0 评论 -
MFC程序启动时最小化到托盘
BOOL CMyClockDlg::OnInitDialog(){ // ...... 省略前面代码 // 启动时最小化到托盘 PostMessage(WM_SYSCOMMAND, SC_MINIMIZE, 0);原创 2015-12-27 22:16:50 · 4328 阅读 · 0 评论 -
unicode utf-8 ascii 区别与联系
unicode utf-8 ascii 区别与联系原创 2014-08-28 10:42:22 · 1362 阅读 · 0 评论 -
thrift-0.9.0windows下编译
windows 版本6.1 sp1 win7旗舰版VS2010 SP1下载安装cygwinhttp://thrift.apache.org/docs/install/make/g++ 4.2+/gcc/boost 1.40.0+/lex/yacc/flex/autoconf/automake/libtool/zlib/看还需要啥搜索啥thrift 版本:0.9.0 http:/原创 2014-02-19 13:22:30 · 1297 阅读 · 1 评论 -
std::lock_guard std::unique_lock 区别
std::unique_lock可以unlock, std::lock_guard不能原创 2017-02-16 09:40:01 · 1615 阅读 · 1 评论 -
murmurhash64B c# c
c#版:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace gjh.utility{ public class MurmurHash64B { public static ulong MakeHashValue(byte原创 2017-02-24 19:55:21 · 1286 阅读 · 0 评论 -
发现一个VISUAL STUDIO的PROTOBUF的插件,还不错,可以高亮、折叠
https://marketplace.visualstudio.com/items?itemName=mreu.ProtobufLanguageService原创 2017-07-21 14:59:53 · 3551 阅读 · 0 评论 -
std::map 自定义类做为key时 find operator 小于 的正确写法
如果没记错很久以前就遇到过这个问题了,当时也纠结了一会,没想到今天又遇到了。聊记于此。类定义:class DataSortKey{public: DataSortKey(){ memset(this, 0, sizeof(*this)); } unsigned level; unsigned vip_level; unsigned param1; uint64_t p...原创 2017-05-18 20:36:00 · 5971 阅读 · 1 评论 -
linux共享内存的两种方式
共享内存是进程间通信(Inter Process Communication)的最快方式。linux共享内存有两种方式:第一种:mmap方式,适用场景:父子进程之间第二种:shmget方式,适用场景:同一台电脑上不同进程之间两种方式的文档网上都有很多,随便一抓一把。通病:共享内存没有自带的同步机制,需要借助其他方式来进行同步。nginx使用了mmap方式,并且对wind原创 2017-05-04 11:45:28 · 7621 阅读 · 0 评论 -
JSONCPP操作帮助
JSONCPP解析时比较麻烦,要判这判那的,于是直接简单封装了一个helper,如果要想面向对象可以直接改成类的静态成员。jsoncpp_helper.h#pragma once#if( defined(WIN32) || defined(WIN64) )#include "jsoncpp/include/json/json.h"#else#include "json/j...原创 2017-04-19 20:23:19 · 561 阅读 · 0 评论 -
c++11 获取毫秒数
auto time_now = chrono::system_clock::now(); auto duration_in_ms = chrono::duration_cast(time_now.time_since_epoch()); return duration_in_ms.count()原创 2017-04-11 18:00:03 · 8261 阅读 · 0 评论 -
VC MFC进程条(CProgressCtrl)控件
VC MFC进程条(CProgressCtrl)控件CProgressCtrl类里相关函数介绍void CProgressCtrl::SetRange( short nLower, short nUpper );//设置进程条上下限(范围)int CProgressCtrl::GetPos();//获取进程条位置int CProgressCtrl::SetP原创 2013-05-14 22:41:42 · 2778 阅读 · 0 评论