Linux | c&cpp | Email | github | QQ群:425043908 关注本站

itarticle.cc

01double与uint64互转精度丢失

double: 1bit(符号位) 11bits(指数位) 52bits(尾数位),uint64_t最大值转为double型:64bit的1->1.111(52个)*2^63 (在vs中实际转换后表示成了1.00*2^64,应该是因为最后11个bit 进了一位),不超过53位时才不会有精度问题

02设计模式六大原则

单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则

03mysql字符编码问题latin1到utf8

由于mysql的client和server之间的编码不致,会导致模糊查询的时候查询失败,下面方法主要解决这个问题: set names 'utf8'; SELECT CONVERT(CONVERT(CONVERT(LOWER(consumption_name) USING latin1) USING binary) USING utf8),consumption FROM dimen_table; 这种方法基本是万能的

04pbc默认值问题

这里就得提到pbc的两个feature。第一个是,如果一个optional字段的数据不存在,那么你尝试去读的时候,会返回一个默认值。这个默认值的话如果协议里不定义,整数是0,字符串是空串,而table就会生成一个新table,里面的数据全是默认值。

第二个是,如果某个optional的字段的内容是默认值,那么打包的时候会忽略。也就是说pack的结果的二进制里什么也没有。

05全排列与全组合

全排列就是从第一个数字起每个数分别与它后面的数字交换,也可以得出这种解法每次得到的结果都是正确结果,所以复杂度为 O(n!).输入三个字符 a、b、c,则它们的组合有a b c ab ac bc abc。当然我们还是可以借鉴全排列的思路,利用问题分解的思路,最终用递归解决。不过这里介绍一种比较巧妙的思路 —— 基于位图.

06gdb调试C++标准库

“p *($arg0._M_impl._M_start + $i)” 查看vector第几个元素的值

07autoexp.dat使用Visual studio在debug时显示变量内容

使用VS2008进行调试时,有些变量显示不够直接,需要一层一层的展开才能得到直观的变量内容。虽然不难,但是很影响效率。我们可以通过修改autoexp.dat来修改变量在debug Visualizer的显示。

08多线程编程使用无锁结构会不会比有锁结构更快?

一部分朋友觉得用锁会影响性能,其实锁指令本身很简单,影响性能的是锁争用(Lock Contention),什么叫锁争用,就是你我都想进入临界区,但只能有一个线程能进去,这样就影响了并发度

09升级 Windows 10 后 SVN 图标不显示的解决办法

Win 10 发布后,第一时间升级到了最新版本,但是发现在 Explorer 中,SVN 的图标没办法显示了。经搜索,发现需要修改注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\下的相关项即可。

10c++ 中的重载全局new,delete

new为我们做了两件事情,一、申请一块足够的内存空间供存放对象,对于new一个数组对象,编译器会计算出总共的空间,然后执行类似c语言中malloc函数类似的功能。二、初始化对象,对于单个对象,包括包括基本对象和类对象,可以通过括号初始化,比如int * pn = new int(3); A * pa = new A(3); 然而对于数组不能初始化,对于类对象,必须定义无参数的构造函数。

11C++ 中对象创建(构造、拷贝、赋值、隐式类型转换)

对象创建、拷贝构造、赋值、隐式类型转换、explicit、按值传递 (passed by value)、按引用传递 (passed by reference)、参数传递、返回值传递

12模拟差网络环境的软件

clumsy makes your network condition on Windows significantly worse, but in a managed and interactive manner.

我的名片

网名:丰果 | Ranger

职业:游戏开发

现居:上海市

Email:86668082@qq.com




站点信息

  • 建站时间:2016-04-01
  • 文章统计:728条
  • 文章评论:82条
  • QQ群二维码:扫描二维码,互相交流