摘要:【1】基础部分 《信号和槽机制》 《信号与槽知识点》 《QString 与 string转换》 《QT 继承QWidget && 继承QDialog》 《QString字符串中双引号的梗》 《Qt Md5应用示例》 《QDialog 使用Demo》 《Qt 添加 QtNetwork 库文件》 《QS 阅读全文
posted @ 2019-12-08 22:18 kaizen 阅读(197) 评论(0) 推荐(0) 编辑
摘要:【1】基础部分 (1)宏定义 《assert》 《offset宏》 《#pragma once》 《宏定义学习》 《预处理语句》 《#if 0 #end if》 《C语言 宏定义的1<<0 与 直接定义1 有什么区别》 《区分不同操作系统、编译器不同版本的宏》 《宏和函数的区别(一个BUG的总结)》 阅读全文
posted @ 2019-12-08 21:53 kaizen 阅读(534) 评论(0) 推荐(0) 编辑
摘要:【1】潜规则 各行各业都有潜规则。程序也不例外。 顺序(main),即逻辑;判断(if),即业务;循环(for),即坚持。 【2】关系 社会上没有一处人事关系不复杂。其实,程序也一样的,大系统中对象与对象之间的关系也很复杂。 【3】辈分 现实中往往存在排资论辈的现象。在程序中,一个对象继承于谁也相当 阅读全文
posted @ 2018-06-04 11:47 kaizen 阅读(428) 评论(1) 推荐(2) 编辑
摘要:【1】设置VS2019 支持C++17标准步骤 体验了一个C++17的特性,找到设置VS2019 支持C++17标准的操作步骤,详细如下图: good good study, day day up. 顺序 选择 循环 总结 阅读全文
posted @ 2021-04-07 17:45 kaizen 阅读(105) 评论(2) 推荐(0) 编辑
摘要:根据业务需求,在编码过程中,经常会遇到switch case表达式是字符串的场景,现支持如下。 【1】实现文件 支持实现的文件 1 #pragma once 2 3 #include <cstddef> 4 #include <cstdint> 5 #include <type_traits> 6 阅读全文
posted @ 2021-02-23 20:52 kaizen 阅读(104) 评论(0) 推荐(0) 编辑
摘要:【1】复现问题 为了更精确的分析,先用最简单的示例复现此错误场景,代码如下: 1 #include <map> 2 #include <string> 3 4 struct Section 5 { 6 int id; 7 std::string code; 8 9 bool operator<(co 阅读全文
posted @ 2020-12-18 10:39 kaizen 阅读(563) 评论(0) 推荐(0) 编辑
摘要:昨天给同事写了一个把自定义类型作为map中key值的示例,结果过了半个小时,同事反馈:不满足需求。 嗯哼?作为一个程序员,不满足需求那可就是BUG呀~ 不行,得尽快给处理一下。 【1】异常示例(不满足需求样例) 源代码如下: 1 #include <map> 2 #include <string> 阅读全文
posted @ 2020-12-13 12:38 kaizen 阅读(199) 评论(0) 推荐(0) 编辑
摘要:【1】std::remove_if 今天突然有同事问下面这段代码应如何理解。 源码如下: void GStiffenerBlockRepoDefaultImpl::destory(int id) noexcept { m_stiffeners.erase(std::remove_if(std::be 阅读全文
posted @ 2020-12-03 21:13 kaizen 阅读(99) 评论(0) 推荐(0) 编辑
摘要:在Visual Studio调试期间,QString类型想要在调试过程中进行显示需安装插件! 注意:此处提供不需要安装插件,直接配置natvis方式,从而调试QString。 【1】qt5.natvis (1)找到qt5.nativs文件,建议使用everything查找。 (2)将此文件放置在C盘 阅读全文
posted @ 2020-11-09 22:05 kaizen 阅读(438) 评论(0) 推荐(0) 编辑
摘要:ERROR:C2676 二进制“==”:“Student”不定义该运算符或到预定义运算符可接收的类型的转换 多次被同事问到此类错误,于此备录一下。 【1】复现问题 用最简单代码复现说明此问题,示例如下: 1 #include <iostream> 2 #include <map> 3 #includ 阅读全文
posted @ 2020-06-04 19:06 kaizen 阅读(2249) 评论(0) 推荐(2) 编辑
摘要:工作中经常遇见的一个场景:判断某个元素是否在vector容器中。 当然,会有很多种方法,由内置数据类型到自定义数据类型,下面简单总结一下。 【1】内置数据类型 代码胜过一切文档。如下示例代码: 1 #include <iostream> 2 #include <vector> 3 #include 阅读全文
posted @ 2020-05-31 16:00 kaizen 阅读(4582) 评论(0) 推荐(0) 编辑
摘要:【1】Windows10 为某软件添加右键(包括文件、目录、桌面(目录内)的空白位置)菜单 下文以typora为例,其他软件类比操作。 具体操作步骤如下: (1)桌面新建一个txt文件,文件名随便(例如:1024.txt)。 (2)复制以下内容,粘贴到txt文件中。 Windows Registry 阅读全文
posted @ 2020-04-17 10:17 kaizen 阅读(470) 评论(0) 推荐(0) 编辑
摘要:【1】hpp文件 hpp,Header plus plus的缩写,实质是将.cpp的实现代码混入.h头文件,即声明与定义(实现)都包含在同一个文件中。 该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。 实现代码将直接编译到调用者的obj文件中,不再生成 阅读全文
posted @ 2020-04-12 21:05 kaizen 阅读(1134) 评论(0) 推荐(1) 编辑
摘要:【1】函数符定义 函数对象,也叫函数符(functor)。即函数符其实是对函数对象的一种别称。 函数符(函数对象)是指可以类似函数方式与()结合使用的任意对象。 那么,很显然,函数符包括函数名、函数指针的对象和重载了()运算符的类对象(即定义了函数operator()()的类)。 【2】函数符种类 阅读全文
posted @ 2020-04-05 14:28 kaizen 阅读(238) 评论(0) 推荐(0) 编辑
摘要:【1】错误列表 今天被同事问到这个问题,当时一阵懵圈。现梳理操作方式如下: 工具(调试)——>选项——>项目与解决方案——>常规——>若生成完成时有错误,则始终显示错误列表(T) 如下图示例: good good study, day day up. 顺序 选择 循环 总结 阅读全文
posted @ 2020-04-04 23:47 kaizen 阅读(1876) 评论(0) 推荐(0) 编辑
摘要:【1】复现编译错误 C2675: 一元“++”:“_Iter”不定义该运算符或到预定义运算符可接收类型的转换 1 #include <map> 2 #include <unordered_map> 3 4 struct GJGActionEvent 5 { 6 std::map<std::strin 阅读全文
posted @ 2020-04-03 00:10 kaizen 阅读(1283) 评论(0) 推荐(1) 编辑
摘要:【1】右值和左值引用成员函数 【2】应用示例 简单的示例程序如下: 1 #include <iostream> 2 3 struct Test 4 { 5 // can be invoked on lvalue 6 void f() &; 7 8 // can be invoked on rvalu 阅读全文
posted @ 2020-03-16 00:12 kaizen 阅读(283) 评论(0) 推荐(0) 编辑
摘要:【1】std::function简介 std::function是一个函数包装器模板,最早来自boost库,对应其boost::function函数包装器。 一个std::function类型对象实例可包装以下可调用元素类型等等: (1)函数 (2)函数指针 (3)类成员函数指针 (4)任意类型的函 阅读全文
posted @ 2020-03-01 01:42 kaizen 阅读(869) 评论(0) 推荐(0) 编辑
摘要:【1】spdlog简介 spdlog是一个开源的、快速的、仅有头文件的基于C++11实现的一款C++专用日志管理库。 【2】源码下载 下载地址:https://github.com/gabime/spdlog 【3】工程配置 (1)解压缩源码包 解压后,找到include文件夹。类比本地: 注意:i 阅读全文
posted @ 2020-02-28 02:16 kaizen 阅读(3005) 评论(0) 推荐(0) 编辑
摘要:【1】复现错误 error c2663: n个重载没有“this”指针的合法转换 错误示例代码: 1 #include <iostream> 2 using namespace std; 3 4 class Student 5 { 6 public: 7 Student(string name, s 阅读全文
posted @ 2020-02-25 00:34 kaizen 阅读(824) 评论(0) 推荐(0) 编辑
摘要:【1】作者简介 【2】库 https://github.com/nlohmann/json 【3】应用示例 (1)工程配置 (2)示例代码 1 #include <string> 2 #include <vector> 3 #include <fstream> 4 #include <iostrea 阅读全文
posted @ 2020-02-16 23:45 kaizen 阅读(3011) 评论(0) 推荐(0) 编辑
摘要:当然,从官网下载对应版本包进行升级是其中一种方式。 温馨提示:以下方法基于默认原CMake版本是在安装Python的基础上进行安装的。 CMake安装:在安装Python后,通过命令pip install cmake安装。 【1】卸载旧版本 以管理员身份运行Cmder,查看目前版本号(本地为3.15 阅读全文
posted @ 2020-02-15 23:48 kaizen 阅读(1386) 评论(0) 推荐(0) 编辑
摘要:由于不同的IDE中Tab键的宽度不一样,所以为了让在不同的IDE中看到相同的缩进效果,在一些代码规范标准中通常要求将Tab键换成4个空格表示。 【1】如何在VS中设置输入Tab键后智能转换为键入4个空格? 设置步骤:工具 ->选项 ->文本编辑器 ->所有语言 ->制表符 (1)选中“智能” (2) 阅读全文
posted @ 2020-02-15 23:14 kaizen 阅读(2089) 评论(0) 推荐(0) 编辑