自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 虚函数表和虚函数表指针

虚函数表指针,顾明思议就是指向虚函数表的指针,那么这个指针在哪里呢?现在是不是就清楚了,那么我们就再讨论一下虚函数表是什么,虚函数表实际上就是存放虚函数的函数指针的一个指针数组,每一个类只有一张虚函数表,它被放在代码段,每当一个类的对象被声明定义时,其虚函数表指针指向的就是该类的虚函数表的位置。在C++中可以使用子类来覆写基类的虚函数,然后并使用基类的指针指向子类的实例,但可以通过基类的指针去调用到子类所覆写的虚函数,也就是C++中的动态绑定。虚函数表指针是什么,虚函数表又是什么,它们之间的关系又是什么?

2024-11-23 22:31:32 371

原创 std::async源码解析

2.在 main 函数中,使用 std::async 启动异步任务,传递 std::launch::async 作为第一个参数,表示任务应在新线程中异步执行。第二个参数是要执行的函数 async_task,后续参数是传递给该函数的参数。它可以在后台线程中执行一个函数,并返回一个 std::future 对象,用于获取异步任务的结果。为了模拟耗时操作,函数中包含了一个 2 秒的睡眠。3.std::async 返回一个 std::future 对象 result,用于获取异步任务的结果。

2024-11-19 10:41:31 329

原创 std::mutex

std::mutex是C++11中封装的互斥量,直接看源码defined简单看一下上面的基本api,满足了互斥量的基本使用,下面对一些具体实现进行解读在Unix系统下,这个类的私有成员变量的类型就是 pthread_mutex_t,基本可以看出是对Unix系统下的pthread_mutex_t的操作的基本封装。对于std::mutex的基本使用如下。

2024-11-18 17:15:57 423

原创 简单线程池

线程池是一种用于管理和复用一组线程的设计模式,旨在提高多线程程序的性能和资源利用率。线程池通过预先创建一定数量的线程,并将任务分配给这些线程执行,避免了频繁创建和销毁线程的开销。简而言之,线程池的实现主要就是一个任务队列加一个线程数组,我们需要使用线程执行某个任务时,只需要将任务投递到任务队列中,然后线程的执行函数会自己从任务队列中取任务进行执行。

2024-11-18 15:10:43 225

原创 C++11线程代码剖析

这是一个基础使用,我们向 t1中传入一个参数,该参数是一个函数指针,参数为空。同理我们也可以向该构造中传入带参数的函数,同时我们在构造时需要传入函数的参数。对于 __libcpp_thread_create 的实现,可以看到在Unix下实际就是pthread_create。在C++11中提供了已经封装好的线程类 std::thread,下面对该类进行一些基础的介绍和使用。然后对于__thread_proxy是一个函数模板,下面给出__thread_proxy的实现。上面是thread的构造函数的实现。

2024-11-16 21:29:32 281

原创 C++复习(1)

基础使用是这样的,对于 >> 与 > a 则表示从终端读向 a ,std::cout

2024-11-13 19:46:52 297

原创 【cmake 与 anaconda的冲突问题】

由于安装的anaconda里带有cmake,且annnconda的bin加入到环境变量里,导致安装的cmake会与其冲突。然后在该配置里加一行,注意后面是你cmake的路径,前面查看的位置(记得需要使用 i 键进入插入模式)我们需要的是下面的哪个,可以使用两种方法解决这个问题。创件一个新环境用来后续使用自己安装的cmake。现在就可以在该环境下正常使用cmake了。最后可以得到当前环境下cmake的版本。如果使用的终端是bash的话请使用。如果使用的是zsh的话请使用。在原来的base环境中使用。

2024-05-15 16:24:57 1631 3

原创 vscode如何在每次运行时刷新终端命令行窗口

按住快捷键 command + ,进入设置,Windows 点击左下角的设置图标。然后在设置中搜索 code runner,并将下图的箭头指向勾选上就行了。

2023-10-01 13:03:19 1459

原创 在 Mac VsCode中代表输入文件结尾的快捷键

control + D

2023-10-01 12:56:58 221

原创 VS CODE如何直接在终端运行,可以进行输入输出

最近使用vscode进行C++de练习时发现使用Run Code 总是在底端输出地方输入输出,但是该地方却不能进行输入,cin 的操作没有办法执行。于是找到了一个方法可以让代码始终在终端执行了。然后在该搜索端口输入 run in terminal会出现如下的页面。首先选择左下角的设置选项并选择其中的设置。选择最后一个选项,将该选项选上即可。进去后会显示如下界面。

2023-09-21 17:22:40 5973 4

原创 VSCODE C++函数的调用符自动补全

在该搜索框内输入Autocomplete,进入到如下页面。将下面的AutoComplete Add Parentheses选上即可。最后退出函数的调用符就可以补全了。最近开始使用VSCODE进行C++的编程,发现了在函数调动时函数的右边的括号并没有自动补全,于是上网查了许多方法,最终找到了设置中进行补全的选项。废话不多说,现在开始进行讲解,首先找到左下角的设置。如图,然后点击设置。

2023-09-21 17:14:22 1863 2

空空如也

空空如也

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

TA关注的人

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