学习笔记
文章平均质量分 93
zzb_max
这个作者很懒,什么都没留下…
展开
-
Boost.Lockfree无锁结构
[译] https://beta.boost.org/doc/libs/1_72_0/doc/html/lockfree.html boost.Lockfree 无锁结构学习原创 2022-06-20 15:58:02 · 1616 阅读 · 0 评论 -
Boost.Log教程参考
Boost.Log【译】Boost官方文档 log 模块,地址 https://www.boost.org/doc/libs/1_76_0/libs/log/doc/html/index.html动机 如今,应用程序快速的增长,变得复杂且难以测试和调试。大多数情况下,应用程序在远程站点上运行,一旦发生故障,开发人员几乎没有机会监控其执行并找出故障原因。此外,如果应用程序行为严重依赖于异步的处理过程,例如是被反馈或其他进程活动,则即使是本地调试也可能出现问题。 这是日志记录可以提供帮助的地方。原创 2021-07-14 19:46:01 · 908 阅读 · 0 评论 -
编码转换问题
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iconv.h>/** * 中文字串转为utf8格式字串 * src 中文字串 * ret utf8字串 * len src串的长度 * 返回转换后的utf8串的长度 * 说明:ret大小应该...原创 2019-09-30 16:58:08 · 212 阅读 · 0 评论 -
C++websocket使用总结
一.案例描述Websocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。websocket在数据交互时有以下优点:较少的控制开销。在连接创建后,服务器和客户端之间交换数据时,用于协议控制的数据包头部相对较小。在不包含扩展的情况下,对于服务器到客户端的内容,此头部大小只有2至10字节(和数...原创 2020-07-21 10:53:29 · 10654 阅读 · 3 评论 -
二进制转字符串代码
typedef char s8;typedef unsigned char u8;typedef short s16;typedef unsigned short u16;typedef int s32;typedef unsigned long ulong;s32 uti_text2hex(s8* pszBodyIn, s8...原创 2020-04-07 19:29:05 · 419 阅读 · 0 评论 -
《c++沉思录笔记》—类设计的核查表
核查表并不是任务清单。它的用途是帮助你回忆起可能忘记的事情,而不是来约束你。如果只是盲目地按照核查表的要求按部就班地做,到头来可能还是会忘记一些事情。知道这一点后,请看下面关于定义类时候要弄清楚的一些问题。这些问题没有确切的答案,关键是要提醒你思考它们,并确认你所作的事情是出于有意识的决定,而不是偶然事件。核查表需要核查的内容:类需要构造函数吗? 数据成员是私有的吗?例如在...原创 2019-07-26 12:41:16 · 204 阅读 · 0 评论 -
C++Primer_学习笔记(八)存储持续性、作用域和链接性
2019年7月22日C++Primer Plus (第六版)中文版8.5.1 重载函数模板需要多个对不同类型使用同一种算法的函数时候,可使用模板。然而并非所有的类型都使用相同的算法。为了满足这种需求,可以像重载常规函数定义那样重载模板定义。和常规重载一样,被重载的模板的函数特征标必须不同。代码如下,新的模板的特征标为(T[] ,T[],int)。注意,在后一个模板中,最后一个参...原创 2019-07-30 10:15:09 · 278 阅读 · 0 评论 -
C++Primer_学习笔记(七)
2019年4月24日4.14.3 显示转换 显示转换也被称为强制类型转换(cast),报货一下命名的强制类型转换操作符:static_cast、dynamic_cast、const_cast和reinterpret_cast。虽然有时候确实需要强制类型转换,但是它们也是程序错误的的源泉。通过使用它们,程序员关闭了C++语言的类型检查设施。在了解怎样把一个值从一中类型强制类型转换...原创 2019-04-24 15:19:55 · 238 阅读 · 0 评论 -
C++Primer_学习笔记(五)
2019年4月17日4.1什么是表达式?表达式由一个或多个操作数构成。特别声明,一般来说表达式的结果是个右值。算术表达式的结果是个右值,算术表达式结果的类型转换由操作数的类型来决定。当存在多种数据类型时,编译器将根据一套预定义的类型转换规则集进行类型转换。当两个或两个以上的操作符被组合起来的时候,这样的表达式被称为复合表达式(compound expression)。在实际情况下,...原创 2019-04-17 16:57:32 · 265 阅读 · 0 评论 -
C++Primer_学习笔记(六)
2019年4月22日4.10 逗号操作符逗号表达式是一系列由逗号分开的表达式。这些表达式从左向右计算。逗号表达式的结果是最右边表达式。在下面例子中,条件操作符的每边都是逗号表达式。第一个逗号表达式的值是ix,而第二个表达式的值是0。int main(){ //examplies of a comma expression //ia , sz ,and inde...原创 2019-04-22 11:14:29 · 196 阅读 · 0 评论 -
C++Primer_学习笔记(四)
2019年4月16日3.9.1多维数组我们可以定义多维数组。每一维用一个方括号对来指定,例如:int ia[4][3];关于多维数组的初始化。为了索引到一个多维数组中,每一维都需要一个方括号对,不然意义就会发生变化。在C++中,多维数组的索引访问要求对程序员希望访问的每个索引都有一对方括号。3.9.2 数组与指针类型的关系数组标识符代表数组中的第一个元素的地址,它的类型是数...原创 2019-04-16 11:06:10 · 187 阅读 · 0 评论 -
C++Primer_学习笔记(三)
3.4字符串类型3.4.1C风格字符串C++提供两种方式的字符串:C风格的字符串和标准C++引入的string类类型。字符串存储在一个字符数组中,一般通过一个char*类型的指针来操纵它。标准C库为操纵C风格的字符串提供了一组函数。注意在计算字符串长度时候,空字符也要考虑在其中。一般为了更好的操控字符串,较好的解决方案是定义两个指针,一个始终指向头,另一个每次向后加一。3.4...原创 2019-04-03 16:38:19 · 205 阅读 · 0 评论 -
C++Primer_学习笔记(二)
2.4面向对象的程序设计面向对象的程序设计方法正是为我们提供了这样一种能力。基类(base class)可由继承(inheritance)提供。当一个IntArrayRC类(也就是一个带有范围检查的IntArray类)继承了IntArray类时,称其为派生类(derived class),他就可以访问IntArray的数据成员和成员函数,而不需要同时维护两份代码拷贝。新的类只需要提供实现其语意...原创 2019-03-25 14:16:18 · 210 阅读 · 0 评论 -
C++Primer_学习笔记(一)
C++Primer学习笔记2019年3月21日第一篇 C++概述1.语言的基本元素:内置数据、变量、表达式、语句及函数。2.程序有两方面组成:(1)算法的集合。(2)数据的集合。3.C++是一种支持多种程序设计方法的语言,主要把它当做面向对象的语言,但是它也能够支持面向过程和基于对象的程序设计方法的支持。1开始 1.1问题的解决 解决问题的策略:分...原创 2019-03-21 15:06:08 · 235 阅读 · 0 评论