1. 避免创建过多中间变量 过多的中间变量不利于代码的可读性,还会增加内存的使用,而且可能导致额外的计算开销。 将用于同一种情况的变量统一管理,可以使用一种通用的变量来代替多个变量。 2. 函数中习惯使用引用传参而不是返回值赋值 常有的一种情况是,需要使用函数进行计算或处理数据,并通过其返回值获得结果。 对于简单的计算或处理,直接使用返回值返回结果…
1. 概述 1.1 正则表达式概述 正则表达式(Regular Expressions,简称 regex)是用于匹配文本模式的一种特殊字符序列,其可以用一系列字符来表示出不同文本的对应模式。正则表达式的应用范围十分广泛,包括验证文本格式、判断字符种类、解析文本信息、转换目标文本、遍历搜索文本、符号化文本等。 一般在文件搜索、浏览器搜索时都可以使用正…
1. Lambda表达式的简述 Lambda表达式是C++11引入的一种函数对象,其使用更为简洁,能更方便的嵌入需要函数的地方。 Lambda表达式也被称为匿名函数,其不需要特定的函数名称,甚至不用指定参数和返回类型。 合理使用Lambda表达式能有效提高代码的可读性,减少代码的冗余量,使代码更为简洁、高效、安全。 2. Lambda表达式的语法格…
1. QThread及moveToThread() 使用情况: 多使用于需要将有着复杂逻辑或需要一直占用并运行的类放入子线程中执行的情况,moveToThread是将整个类的对象移入子线程。 优缺点: 优点:更符合QT的逻辑设计;灵活使用管理线程;将类的任务逻辑与线程逻辑区分开。 缺点:不易于单独对指定函数单独放入子线程,也就不易于将一个类中多个函…
最近,在把Visual Studio2019完全更新到最新Visual Studio2022后,原使用的vcpkg无法正常安装包,会报如下与Visual Studio 2022相关的错误: error: in triplet x64-windows-mixed: Unable to find a valid Visual Studio instan…
一般常用的是C语言风格的强制类型转换(type) expression,这种转换虽然简便,但很是粗糙,无法区分各种细致的转换(比如父类与基类之间的转换,const和非const之间的转换等),并且可能会带来一些难以察觉的问题。 C++为此推出了四种强制类型转换(static_cast、const_cast、dynamic_cast、reinterp…
转载自:The System Design Cheat Sheet: Message Queues - ActiveMQ, RabbitMQ, Kafka, ZeroMQ 本文由 Aleksandr Gavrilenko 发布于2023年12月21日 1. 前言 消息队列是异步服务到服务通信的一种形式。它们对于增强系统的可扩展性、可靠性和可维护性非…
点云下采样是通过一定规则对原点云数据进行再采样,减少点云个数,降低点云稀疏程度,减小点云数据大小。 1. 体素下采样(Voxel Down Sample) std::shared_ptr<PointCloud> VoxelDownSample (double voxel_size) const; voxel_size为体素(体积元素)的…
1. Nanomsg介绍 Nanomsg官方在线文档:https://nanomsg.org/index.html 本文全部代码用C++实现。 以前一直在使用ZeroMQ库处理通信,但因为最近需要做一个一对多的双向实时通信,ZeroMQ提供的几种通信模式就难以很好地实现,于是就去寻找其他的库,比如Nanomsg库。 若想了解ZeroMQ和NanoM…
问题描述 最近在使用QML绑定C++暴露的变量时(这个暴露的变量的一些方法是我修改过的,正常定义的貌似不会): CheckBox { id: connectChecker checked: rtc.connectChecker[index]//暴露的数组 onCheckedChanged: { rtc.connectChecker[index] =…