前言最近的新闻里 C++20 已经确认的内容里已经有了协程组件,之前都是粗略看过这个协程草案。最近抽时间更加系统性的看了下接入和实现细节。我的测试代码都是在MSVC下开启 /await 选项后测试的,在我本地的Linux clang环境中,可以通过 LLVM_CLANG_PREFIX/bin/clang++ -std=c++2a -O0 -g -ggdb -
......
270
0
0
2023-04-27
目录stoi()函数stoi()函数指定转换字符串为十进制用法stoi()函数指定转换字符串为十六进制用法stoi()函数指定转换字符串为八进制用法stol()函数stol()函数指定转换字符串为十进制用法stol()函数指定转换字符串为十六进制用法stol()函数指定转换字符串为八进制用法stoll()函数stoll()函数指定转换字符串为十进制用法sto
......
498
0
0
2023-04-19
目录wcsncpy_sswprintf_smemsetmemcmpmemcpywcslenLoadStringWGetModuleHandleWUuidFromStringWUuidCompareUuidHashUuidCreatewcstok_s_wcstombs_s_lWritePrivateProfileStringAwcsncpy_swcsncpy_
......
284
0
0
2023-04-18
本文没有带反射部分内容,可以看我之前发的Server.h#pragma once
#include <string>
#include <iostream>
#include <thread>
#include <unordered_map>
using namespace std;
#ifnd
......
307
0
0
2023-04-16
目录AsyncTcpServerAsyncTcpClient案例演示源代码项目地址Boost 利用ASIO框架实现一个跨平台的反向远控程序,该远控支持保存套接字,当有套接字连入时,自动存储到map容器,当客户下线时自动从map容器中移除,当我们需要与特定客户端通信时,只需要指定客户端ID号即可。AsyncTcpServer服务端首先定义CEventHandl
......
314
0
0
2023-04-16
目录Node.h头文件Node类的构造函数开始一条轨迹添加一条轨迹添加传感器维护功能:添加一个轨迹新增位姿估计器数据采样器订阅话题与注册回调函数上一节我们看了一下node_main.cc的内容,发现其中最重要的部分就是Node类,这个类吃下了map_builder类,且里面实现了传感器数据的处理与分发(sensor_bridge),还有整个Cartograp
......
340
0
0
2023-04-15
目录前言1、创建第一个线程2、线程对象的生命周期、等待和分离3、线程创建的多种方式4、互斥量4.1 独占的互斥量std::mutex4.2 递归独占互斥量recursive_mutex4.4 std::lock_guard和std::unique_lock5、call_once/once_flag的使用6、条件变量前言C++11之前,C++语言没有对并发编程
......
366
0
0
2023-04-14
目录正题开始Singleton.h反射类Reflex.h代码环境为VScode + CMake + GCC 8.1.0首先,如何才能做到给我一个名字我就能拿到这个对象的这个值,也是比较难的一个地方,方法如下#define OFFSET(className,fieldName) (size_t)&(((className*)0)->fieldNa
......
319
0
0
2023-04-10
目录一、概念二、基础操作1.查找find2.插入Insert3.中序遍历InOrder4.删除erase三、递归写法1.递归查找2.递归插入3.递归删除四、应用五、题目练习一、概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根
......
252
0
0
2023-04-10
目录1. list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.2.5 list modififiers1.2.6 list的迭代器失效2. list的模拟实现3. list与vector
......
297
0
0
2023-04-09
C++轻量级Json解析工具—TinyJson简介之前Json解析工具习惯于用**nlohmann/json**,后来发现要兼容Centos5系的系统,且需要批量使用,系统升级gcc/g++升级有点不现实,后来改用轻量级TinyJson库,说一下在使用碰到的一些问题以及为了兼容性作出的修改。TinyJson轻量级json解析工具,只需要包含头就可以直接使用。
......
361
0
0
2023-04-07
目录程序截图简单说明代码实现程序截图简单说明随机生成数独的算法见力扣上对应题目的题解,我用的是递归回溯法力扣原题先随机放入 11 个数就能生成一个数独然后求数独的解最后选择要显示的数字再显示出来。这里还用到了洗牌算法选择要随机显示的数字。代码实现TCW_GUI.h // 程序:数独
// 编译环境:Visual Studio 2019,EasyX_2021
......
266
0
0
2023-04-07
目录为什么要用内存池内存池原理内存池设计内存池实现为什么要用内存池C++程序默认的内存管理(new,delete,malloc,free)会频繁地在堆上分配和释放内存,导致性能的损失,产生大量的内存碎片,降低内存的利用率。默认的内存管理因为被设计的比较通用,所以在性能上并不能做到极致。因此,很多时候需要根据业务需求设计专用内存管理器,便于针对特定数据结构和使
......
373
0
0
2023-04-06
使用指针访问数组指针类型的加减运算可以使指针内保存的首地址移动。指针类型加n后。首地址向后移动 n * 步长 字节。指针类型减n后。首地址向前移动 n * 步长 字节。步长为指针所指向的类型所占空间大小。例如:int *p = (int *)100;
p + 1,结果为首地址向后移动sizeof(int)字节,即104。p - 1,结果为首地址向前移动si
......
262
0
0
2023-04-05
内存地址以整型加法为例,我们来看看在计算机内部,CPU(中央处理器)是如何配合其他硬件进行计算的。CPU与内存协同工作CPU由三部分构成:算术、逻辑单元:对数据执行运算(例如加法、减法)的电路。控制单元:协调机器活动的电路。寄存器组 :数据临时存储。数据几乎都存储在内存上,仅有当前正在处理的数据,才放到CPU的寄存器组上,等待CPU进行计算。CPU将数据计算
......
286
0
0
2023-04-05