自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(156)
  • 资源 (1)
  • 收藏
  • 关注

原创 arm-none-linux-gnueabi交叉工具链执行后显示: no such file or directory

【代码】arm-none-linux-gnueabi交叉工具链执行后显示: no such file or directory。

2024-01-16 15:29:39 458 1

原创 C++11引入的原始字符串字面量与普通字符串字面量的区别

在C++中,R"(C:\temp\my_file.ext)"和"C:\temp\my_file.ext"之间有一个重要的区别。因此,R"(C:\temp\my_file.ext)"和"C:\temp\my_file.ext"的主要区别在于,前者是。在处理文件路径时,使用原始字符串字面量可以避免处理转义字符的麻烦。原始字符串字面量,不会对反斜杠进行转义。

2023-11-15 18:06:55 211

原创 可变参数模板

3.C++17 中增加了变参模板展开的支持。1. sizeof...计算参数个数。

2023-11-06 15:06:45 170

原创 C++17对if/switch的增强

C++17之前不允许在if/switch语句中定义一个临时变量。但在C++17之后可以了。

2023-11-02 13:45:04 161

原创 大小端模式的判断代码

【代码】大小端模式的判断代码。

2023-11-01 19:38:41 105

原创 qt pro里面添加图标

被调用后,程序会进入一个循环,这个循环会不断地接收并处理各种用户界面事件,直到没有更多的事件需要处理。在Qt中,所有的用户界面交互,比如点击鼠标、键盘输入等,都是由事件驱动的。当这些事件发生时,Qt会生成相应的事件,然后传递给应用程序去处理。是 Qt 框架中的一个类,用于处理应用程序级别的操作,例如处理命令行参数、设置应用程序风格等。对象之后,可以创建并操作各种 Qt 控件,例如按钮、文本框等,以构建用户界面。的作用就是启动Qt的事件循环,让程序开始接收并处理用户界面事件。所以,在你给出的代码中,

2023-10-20 10:22:34 59

原创 move old_folder/ new_folder和 move old_folder new_folder

对于你提到的两个命令,mv old_folder/ new_folder和mv old_folder new_folder,它们实际上是不同的。mv old_folder/ new_folder:这个命令将在当前目录下将名为"old_folder"的文件夹移动到名为"new_folder"的文件夹中。如果"new_folder"不存在,那么它将被创建。mv old_folder new_folder:这个命令将在当前目录下将名为"old_folder"的文件夹重命名为"new_folder"。

2023-09-07 16:39:36 48

原创 关于unordered_map中元素的插入顺序与遍历顺序问题

最近做一个项目遇到一个问题困扰我两天,差点自闭。经排查是。

2023-09-07 12:44:05 600

原创 大端和小端模式

小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,存储模式将地址的高低和数据位权有效地结合起来。大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,存储模式类似把数据当作字符串顺序处理。windows是小端模式。

2023-09-06 13:22:58 159

原创 qcreator编译出现: error: GL/gl.h: No such file or directory

该问题表示没有Opengl库,

2023-09-05 11:44:45 243

原创 sourceinsight使用教程

原文链接:【代码阅读软件】Source Insight 4 使用教程 | 很详细——适合新手_sourceinsight文件窗口_wkd_007的博客-CSDN博客

2023-09-01 16:45:39 122

原创 如何在window下cmd窗口执行linux指令?

1.3.重启电脑。

2023-08-20 13:20:34 2552

原创 git快速入门

cat id_rsa.pub 拿到公钥。在路径C:\Users\28268下。底层是head的指针跳转。复制到githhub。

2023-08-20 11:30:41 441

原创 依赖模板参数来访问成员函数模板

【代码】依赖模板参数来访问成员函数模板。

2023-08-19 17:48:06 31

原创 模板编程-嵌套依赖

【代码】模板编程-嵌套依赖。

2023-08-19 17:32:55 32

原创 类模板的成员函数模板

【代码】类模板的成员函数模板。

2023-08-19 17:19:34 35

原创 类类模板的模板参数并不限于类型参数,普通数值也可以作为模板的参数

【代码】类类模板的模板参数并不限于类型参数,普通数值也可以作为模板的参数。

2023-08-19 17:05:54 57

原创 局部特化-特化部分参数

【代码】局部特化-特化部分参数。

2023-08-19 16:52:48 35

原创 模板编程-成员特化

成员特化:类模板特化除了可以对整个类进行特化外,可以只针对某部分成员函数进行特化。全类特化和成员特化都属于全局特化。

2023-08-19 16:48:27 83

原创 全类特化:特化该类模板所有的成员函数

【代码】全类特化:特化该类模板所有的成员函数。

2023-08-19 16:41:51 77

原创 类模板的递归实例化

【代码】类模板的递归实例化。

2023-08-19 16:23:19 49

原创 类模板的静态成员不是每个对象拥有一份 //也不是类模板拥有一份,而是由类模板实例化出的每一个真正的类各有一份,且为该实例化定义 的所有对象共享

【代码】类模板的静态成员不是每个对象拥有一份 //也不是类模板拥有一份,而是由类模板实例化出的每一个真正的类各有一份,且为该实例化定义 的所有对象共享。

2023-08-19 15:28:11 40

原创 模板编程-某些类型虽然并没有提供类模板所需要的全部功能但照样可以实例化类模板,只要不调用那些未提供功能的成员函数即可

不调用add就能编译过。

2023-08-19 15:18:20 82

原创 在程序中如何判断该线程的线程id(get_id())的返回值是一个无效值

可以通过 `std::thread::id` 的成员函数 `std::thread::id::operator==()` 来判断一个 `std::thread::id` 是否是一个空值。如果一个 `std::thread::id` 对象与默认构造的 `std::thread::id` 对象相等,那么该 `std::thread::id` 对象就是一个空值。`std::thread::id()` 是`std::thread::id`的默认构造函数,它会创建一个空的`std::thread::id`对象。

2023-08-06 16:26:42 169

原创 stdexcept和exception,两个头文件的区别?

2. 异常处理:stdexcept中定义了一些标准异常类,例如logic_error和runtime_error等,它们是由用户定义的异常类继承而来的。而exception是一个基本的异常类,通常用户可以继承exception来定义自己的异常类。而exception中的异常类型可以是任何用户自定义的类型,用户可以根据自己的需要定义异常类型。4. 继承关系:stdexcept中的异常类是按照继承关系组织起来的,所有的标准异常类都继承自exception类。

2023-08-06 15:33:29 198

原创 如何理解线程可以共享地址空间?

这种共享的地址空间可以方便地在多个线程之间共享数据,但同时也需要小心处理并发问题,如竞态条件和数据竞争。为了确保线程安全,必须使用同步机制(如互斥锁、条件变量等)来保护共享的数据,以防止多个线程同时修改同一个内存地址而导致不可预测的结果.在C++中,线程共享地址空间是指在多线程编程中,所有线程都可以访问相同的内存地址。因此,一个线程对内存的修改可能会影响其他线程对相同内存的访问。

2023-07-25 15:09:03 232

原创 C++获取时间戳 微秒级

getMicroTimestamp用来获取微秒级时间戳,formatTimeStamp用来格式化输出时间格式。

2023-07-24 15:27:11 678

原创 自定义类不生效问题(qt)

自定义类设置样式表不生效问题。

2023-07-21 09:49:10 142

原创 关于计算机中的“race condition“的解释

竞争条件(race condition)是指当多个线程或进程同时访问或修改共享资源时,最终的执行结果受到每个线程执行的顺序或时间差异的影响,从而导致程序出现不正确的行为或结果。这种情况下,各个线程之间的执行顺序是不确定的,无法可靠地预测各个操作的完成顺序。因此,出现竞争条件时,程序的行为可能与单线程下的预期结果不一致。"竞争条件"这个词可以被翻译为"race condition",但为了更好理解,可以使用 "并发冲突" 这个词组。

2023-07-18 19:15:05 122

原创 线程独占数据和共享的数据有哪些?

需要注意的是,线程间共享的数据需要进行同步操作,以保证数据的一致性和正确性,否则可能会发生竞争条件导致数据错误或者不可预料的结果。同时,在设计和开发多线程应用时,需要谨慎处理共享数据和私有数据的访问和修改,以避免引发线程安全问题。4. 栈帧:每个线程的函数调用时会生成一个栈帧,用于存储函数的参数、返回地址等信息。2. 栈空间:每个线程都有自己独立的栈空间,存储函数调用时的参数、局部变量等信息。3. 寄存器:每个线程都有自己独立的寄存器,用于存储临时变量和计算结果等。

2023-07-18 19:06:33 1318

原创 C++并发编程之共享数据(二)

恶性条件竞争通常发生于完成对多于一个的数据块的修改。例如对一个双向链表的结点的修改。该节点有两个指针。避免条件竞争的两种方式:方式一:确保只有进行修改的线程才能看到不变量被破坏时的中间状态。从其他访问线程的角度来看,修改不是已经完成了,就是还没开始。方式二:对数据结构和不变量的设计进行修改,修改完的结构必须能完成一系列不可分割的变化,也就是保证每个不变量保持稳定的状态,这就是所谓的无锁编程。

2023-07-15 17:32:48 542

原创 变量生命符thread_local

thread_local是c++11为引进的变量声明符。是一个所谓存储器指定符,其作用类似命名空间,指定了变量名的存储期以及链接方式。staticexternmutable:对象的存储在线程开始时分配,而在线程结束时解分配。每个线程拥有其自身的对象实例。唯有声明为 thread_local 的对象拥有此存储期。thread_local 能与 static 或一同出现,以调整链接。打印结果:每个线程都拷贝了一份两个线程共享一个全局变量,最终结果打印为101;

2023-07-15 17:31:47 181

原创 C++并发编程之线程启动(一)

不过,t1已经有了一个关联 的线程(执行some_other_function的线程),所以这里系统直接调用 std::terminate() 终止程 序继续运行。调用join的行为还清理了线程相关的存储部分,std::thread 对象将不再与已经完成的线程有任何关联,join只能调用一次。解释一下位置9的代码:计算剩下的最后一个块的结果,由于数据大小可能不是最小任务数的整数倍,所以最后一个块的元素个数不一定是多少,但是不影响该算法的执行。,那么转移的时候就需要使用 std::move() 进行。

2023-07-15 11:50:33 256

原创 函数后加const的作用

表示函数不可以修改类中的成员!相当于这个函数是一个只读函数!一旦我们想要改变类成员的值便会报错!1、提高了代码的可读性,别人看到你这个就知道你这个函数没有改变类成员。首先要明确一点,函数后面加const只能是类的。2、提高代码的可靠性,若想改变改变则会报错。,普通函数是无法加const的。

2023-07-15 10:01:41 276

原创 noexcept关键字解析

使用noexcept表明函数或操作不会发生异常。如果noexcept函数向外抛出了异常,程序会直接终止,该函数内部会调用std::abort()终止程序。

2023-07-15 09:50:44 289

原创 std::string const&str与const std::string& str的区别

声明了一个对非常量对象的引用,但是这个引用是一个常量,不能通过这个引用修改非常量对象,但是可以通过其他方式修改这个非常量对象的值。声明了一个对常量std::string对象的引用,也就是该引用是对一个const对象的引用。

2023-07-14 17:51:43 693

原创 为什么这个异常捕获不到?

try {});i < 100000;++i) {j < 5;++j) {t1.join();t1.join();

2023-07-13 22:47:10 26

原创 qt的槽无反应的问题

connect的返回值是true,信号也正常emit了,但是槽函数不执行。控制台输出为:导致该问题的原因是:解决方法:

2023-07-12 17:33:21 1163

原创 QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread 问题解决

将DataReceive构造函数中初始化upd的代码放到了doInit中,该函数被。使用Qt的多线程时,出现。started信号调用。

2023-07-04 11:55:59 3351

原创 std::sort对std::list排序的问题

成员函数,它使用归并排序实现,时间复杂度为 O(n\log n)O(nlogn)。尝试用std::sort对std::list排序,编译器报错;的迭代器不支持随机访问。算法需要随机访问迭代器,而。

2023-06-19 11:32:38 251

linux操作手册详细快速入门

linux操作手册

2023-05-19

face_detection.rar

基于肤色的人脸检测,含matlab源代码,亲测好用。人脸检测是人脸识别的第一步。

2019-06-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除