- 博客(50)
- 收藏
- 关注
原创 C++ 异步执行任务async()(补充)
std::async是C++11新增的一个功能,它主要提供了一种方便的方式来执行异步任务。std::async函数模板会返回一个std::future对象,该对象表示异步任务的执行结果。
2024-10-21 11:40:21
217
原创 关于VSCode配置C++项目环境——包含头文件路径
想使用boost::any写一个插件间通信的消息总线,但是电脑只配置了vscode和mingw环境,没有安装VS,平时也只是将vscode当作一个万能编辑器使用,本文将分享我在vscode中配置c++项目环境中遇到的问题。
2024-10-10 23:11:23
2610
原创 C++ 结构体之间继承和转换
在C++中 结构体(struct)和类(class)具有很多相同的特性,都可以包含数据成员和成员函数,换而言之,结构体就是类的另一种形式。像类一样,结构体之间也可以拥有继承关系;
2024-09-26 16:17:23
529
原创 C++ std::find函数 容器元素查找
std::find函数是C++标准库内非常实用的一个函数,主要用于在给定范围内查找某个元素,如果找到该元素,则返回指向该元素的迭代器;如果没有找到,则返回指向范围末尾的迭代器(即end()
2024-09-19 23:38:57
515
原创 C++ 条件变量:wait、wait_for、wait_until
wait:无限期等待直到条件满足。wait_for:等待直到条件满足或指定的时间过去。wait_until:等待直到条件满足或指定的时间点到达。
2024-09-18 23:57:59
3658
原创 VSCode C++ Tasks.json基本信息介绍
上文介绍了VSCode在Windows环境下如果创建C++项目和编译多个文件项目,但是只是粗略的说明了一下Tasks.json文件。今天对tasks.json进行进一步的了解。
2024-09-14 17:32:32
1184
原创 VSCode C++ Tasks.json中的变量
上文介绍了在VSCode中创建C++项目和编译多文件的情况。本文将介绍Tasks.json中一些变量的含义;
2024-09-13 23:52:49
578
原创 VSCode创建C++项目和编译多文件
在刚安装好VSCode后,我简单尝试了仅main.cpp单文件编译代码,没有问题,但是当我尝试多文件编译时,就出现了无法识别cpp文件。
2024-09-13 10:41:13
1791
原创 VSCode配置C++环境
VSCode作为一款“宇宙级”的编辑软件,为用户提供了丰富的插件。本文是一片保姆级关于VSCode配置C++环境教程;
2024-09-12 23:51:52
1052
原创 QT QSystemTrayIcon创建系统托盘区图标失败
在开发个人项目时,需要在Windows系统托盘区创建一个图标,在代码中,我使用的是QT的类进行图标创建,但是在加上图片资源后,一直没有图标显现。我使用的是Qt6Windows11系统。
2024-09-11 23:55:48
607
原创 C++ 互斥锁、条件变量的基础使用
在C++多线程开发中,互斥锁和条件变量是线程同步中非常重要的部分。互斥锁和条件变量主要用于确保对共享资源的访问是线程安全的(C++的容器都不是线程安全的)。本文主要介绍互斥锁和条件变量的基础使用。
2024-09-11 21:20:09
751
原创 使用ESP8266和OLED屏幕实现一个小型电脑性能监控
最近大扫除,发现自己还有几个ESP8266MCU和一个0.96寸的oled小屏幕。又想起最近一直想要买一个屏幕作为性能监控,随机开始自己diy。
2024-09-10 23:47:02
1119
4
原创 QT QTcpSocket作为客户端
QTcpSocket是Qt提供的关于TCP网络通信的类。QTcpSocket是一个异步的类,能够非阻塞式发送和接收数据。QTcpSocket内部封装了网络通信相关细节,对外提供便利的接口去帮助开发人员实现简历连接、断开连接、数据收发。
2024-09-10 22:52:29
676
原创 C++ 上下行转换(类对象、继承)
在C++中,类型转换是常见的编程操作。上下行转换是类型转换的重要概念,其主要内容是关于在C++中两个有继承关系的类的相互转换。
2024-09-09 17:59:28
436
原创 C++ 类型转换
在C++中,类型转换是指将一个变量或表达式从一种数据类型转换为另一种数据类型的过程。类型转换有两种基本形式:隐式类型转换和显式类型转换。
2024-09-09 10:56:27
794
原创 C++ 容器元素排序函数sort()
是C++标准库提供了一个模板函数,这个函数用于对给定范围内的元素进行排序,默认情况下,它使用元素类型的操作符来确定元素的顺序。如果元素类型不支持操作符,或者你需要按照不同于的顺序来排序,你可以提供一个自定义的比较函数或者比较函数对象或lambda。
2024-09-05 23:58:34
412
原创 C++ 异步任务执行结果future
是 C++11 引入的一个非常有用的特性,它提供了一种机制来访问异步操作的结果。当你启动一个异步任务时,比如通过std::async方式,该方式会返回一个对象,这个对象代表了异步操作的结果。可以查询这个对象以获取异步操作的结果,或者检查异步操作是否已经完成。
2024-09-05 22:21:06
475
原创 C++ 异步执行任务async()
std::async是C++11新增的一个功能,它主要提供了一种方便的方式来执行异步任务。std::async函数模板会返回一个std::future对象,该对象表示异步任务的执行结果。
2024-09-04 23:28:39
510
原创 C++ multimap 容器
在 C++ 中,multimap是标准库中的一个关联容器,它包含键值和映射值对,并且。multimap自动将其元素保持在排序顺序中,基于键的比较,这使得它非常适合用于需要存储一系列与单个键相关联的值的情况。
2024-09-04 17:26:45
444
原创 C++ 获取变量类型 decltype 和 (typeid().name)
在C++11中新增了一个关键字decltype,其功能是在编译时期进行自动类型推导,与auto类似,但是两者的具体使用方式不同。decltype 全称 declare type,意思是 “声明类型”
2024-09-03 23:22:59
912
原创 C++可变参数函数模板
这行代码,我们可以这样理解,我们将参数包的每个参数都单独地放入CoutArg函数中,将参数转换为字符串,然后返回到数组vec中。有时候,需要获取参数的地址,仅需要在调用可变参模板时,使用引用参数传递即可。上述就是初始化列表的方式之一,也是最简单、明了的方式。想要使用Args参数包内的参数,就需要解包。在上述代码中,最主要的一行代码就是。利用数组和{}的初始化进行解包。
2024-09-02 22:19:04
719
原创 动态数组(vector)删除元素,迭代器失效
动态数组时一个线性容器,增删改查是容器必备的功能;动态数组(vector)类模板提供了一个成员函数erase(),用于删除数组中的元素。erase有多个重载形式。本文介绍使用迭代器进行元素的删除。
2024-09-02 09:34:13
701
原创 Qt QtConCurrent 使用示例
1.向函数传递参数的方式:通过将参数添加到紧跟在函数名之后的 QtConcurrent::run()调用中来完成向函数传递参数。运行的机制是:在调用 QtConcurrent: : run ()的地方复制每个参数,并在线程开始执行函数时将这些值传递给线程。调用 QtConcurrent: : run ()后对参数所做的更改对线程不可见。2.获取函数返回值的方式返回值通过 QFuture 获得;注意,QFuture: : result ()函数阻塞并等待结果可用。
2024-08-29 23:53:52
889
原创 Windows API 读写.ini文件相关函数
.ini文件常作为软件启动设置信息存储的文件,内容与jsonl有一定的相似,主要都是以键值对的形式进行数据存储。本文主要介绍Windows系统为我们提供的读写.ini文件的函数——---GetPrivateProfileInt和WritePrivateProfileString
2024-08-29 23:01:13
778
原创 C++ Windos API FindNextFile函数
上文介绍了FindFirstFile函数,本文介绍与FindFirstFile搭配使用的FindNextFile函数,两者配合使用能够遍历与指定文件名模式匹配的所有文件或目录;
2024-08-28 23:36:34
1203
原创 c++ Windows API FindFirstFile函数
介绍了windows API 获取文件属性 GetFileAttributes()函数;Windows API中还有一个函数FindFirstFile()也能够查询一些文件的属性;本文介绍FindFirstFile函数。
2024-08-28 09:00:00
602
原创 c++ Windows系统API 获取文件属性
某些特殊情景下,我们需要去获取某一文件的属性,例如:创建时间、上次修改时间、读写状态等属性。对与创建时间、上次修改时间来说,我们还可以通过创建一个文件(记录目标文件的创建时间、上次修改时间)来实现,但是该方法浪费资源、且效率地下。Windows系统提供了获取文件属性的API:GetFileAttributes。
2024-08-27 09:00:00
1288
原创 c++ chrono头文件内Duration 、time_point和Clock
中介绍了关于chrono的基本操作,本文来介绍chrono与其他类的关系。
2024-08-23 12:54:44
1235
原创 c++ 关于chrono的基础操作
c++11 提供了与时间和日期相关的功能库 <chrono><chrono>包含了几个命名空间,提供了各种类和函数来处理时间、日期和持续时间;
2024-08-22 09:00:00
596
原创 c++使用标准库函数call_once进行单例模式初始化
单例模式有懒汉式和饿汉式。懒汉式和饿汉式还有一个不同点:饿汉式是线程安全的,懒汉式不是。在多线程环境下,懒汉式的线程安全问题是一个重要问题。
2024-08-20 09:00:00
727
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人