随笔分类 - c++
摘要:在编写应用程序时,我们经常要使用到字符串。C++标准库中的和为我们操作字符串提供了很多的方便,例如:对象封装、安全和自动的类型转换、直接拼接、不必担心越界等等。但今天我们并不想长篇累牍得去介绍这几个标准库提供的功能,而是分享一下stringstream.str()的一个有趣的现象。我们先来看一个例...
阅读全文
摘要:转义字符:不可打印的和特殊意义的字符如单引号、双引号和反斜线,那这样的字符如何表示呢,就是转义字符换行符 \n 水平制表符\t纵向制表符 \v 退格符 \b回车符 \r 进纸符 \f报警(响铃)符 \a 反斜线 \\疑问号 \? 单引号 \'双引号 \"如何字符都可以转换成转义字符的格式\ooo--...
阅读全文
摘要:1.把一个 const 对象的地址赋给一个普通的、非 const 对象的指针也会导致编译时的错误:const double pi = 3.14;double *ptr = π // error: ptr is a plain pointerconst double *cptr = π /...
阅读全文
摘要:const string &shorterString(const string &s1, const string &s2){return s1.size() < s2.size() ? s1 : s2;}inline const string &shorterString(const strin...
阅读全文
摘要:这个是c++很基础的东西,等用到时又有点晕,翻开primer/*1.static不能声明成const和虚函数2.const static可以初始化,但还是需要在类外定义3.类的static必须定义,并且在类外定义,把内存分配在静态存储区,如果只声明不定义出现无法解析的外部命令我猜是他是在编译时期分配...
阅读全文
摘要:map坐标:将像素坐标划分成40*30的格子的坐标像素坐标:这个就是图片的那个坐标block坐标:就是屏幕划分成3*3的坐标,这个还得看看。当从A点移动到B点时,红色的就是离开的区域,蓝色的是进去的区域,着两个区域都是需要通知的。这里的是block坐标,一个客户端屏幕会被划分成3*3屏幕,听经理说这...
阅读全文
摘要:一、C++中不能使用random()函数 random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过。但在C语言中int random(num)可以这样使用,它返回的是0至num-1的一个随机数。 可改用C++下的rand函数来实现。 1、C++标准函数库提供一随机数...
阅读全文
摘要:1. 什么是bsonBSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。BSON可以做为网络数据交换的一种存储形式,这个有点类似于Google的Pro...
阅读全文
摘要:先画个大概的,思路先理清一下,细节还有很多。这个是服务器比较关键的。其实是只要和地图有关的,GS线程直接扔给map里面,然后接收响应的数据,感觉GS像个桥梁的作用。
阅读全文
摘要:m_spNPC = NEWSP(NPC);//NPC加载,如怪物等m_spNPC->setFT(m_spTimerFactory.get());//共享Map中的定时器,让Map线程来驱动。m_spNPC->setMapPtr_NPC(this);//一定要先调用地图看到这个代码让我蛋疼一把,搜了一...
阅读全文
摘要:boost::lexical_cast为数值之间的转换(conversion)提供了一揽子方案,比如:将一个字符串"123"转换成整数123,代码如下:string s = "123"; int a = lexical_cast(s); 这种方法非常简单,笔者强烈建议大家忘掉std诸多的函数,直接...
阅读全文
摘要:try{ INIT_PLUG I_MongoDB* i = NEW(MongoDB); /*【注】 若自定义错误消息的数组长度必需指定为MAX_ERROR_SIZE*/ //char errmsg[MAX_ERROR_SIZE]={0};//方式一 ...
阅读全文
摘要:在看项目代码时,发现有个调用,明明调用的函数基类的,搞不懂为什么会调用到派生类的,这是个虚函数,我想肯定是指针的问题,我又想到了是绑定时候的问题thrTransData::thrTransData(){ m_spTimerFactory = NEWSP(TimerFactory); ne...
阅读全文
摘要:// Test.cpp : 定义控制台应用程序的入口点。//#include "../I_Timer.H"#include void onTimer1(){ std::cout createTimer();#if 1 auto myTimer1 = /*Timer::createTime...
阅读全文
摘要:个线程都有一个唯一的 ID 以识别不同的线程,std:thread 类有一个 get_id() 方法返回对应线程的唯一编号,你可以通过 std::this_thread 来访问当前线程实例,下面的例子演示如何使用这个 id:#include #include #include void hello...
阅读全文
摘要:GameServer以前访问DBcenter时同步的,这样服务器都要等待DBcenter返回结果,经理在DBcenter和GameServer之间加了一个asynDBCenter,就实现了异步,感觉还是很复杂,当然经理就20分钟搞定的事,主要函数:bool asynDBCenter::get_fro...
阅读全文
摘要:this->send_change_equip = ([this](ChangeEquipPT channge) { send_cmd(s2c_change_equip, &channge, sizeof(channge)); });这个是c++11 lambda的用法,[...
阅读全文

浙公网安备 33010602011771号