- 博客(10)
- 收藏
- 关注
原创 《C++并发编程实战》笔记---第2章 线程管理
编译器会将他定义为声明一个my_thread的函数,函数有一个参数(函数指针指向没有参数并返回background_task对象的函数),返回一个std::thread对象的函数。key question: std::thread的构造函数会复制提供的变量,就只复制了没有转换成期望类型的字符串字面值。key question : 传递给函数的参数是data变量内部的拷贝引用,而非数据本身的引用,代码中, 提供的函数对象会复制到新线程的存储空间当中, 函数对象的执行和调用都在线程。
2023-09-22 16:48:04
59
1
原创 浅拷贝,深拷贝,移动语义,移动构造函数,移动赋值重载
移动构造函数提高了程序的效率,避免了不必要的资源拷贝。浅拷贝:只复制指向某个对象的指针,而不复制对象本身,深拷贝:深拷贝会另外创造一个一模一样的对象,,是“值”而不是“引用”(不是分支)。为什么会有移动构造函数?
2023-08-29 10:07:50
82
2
原创 左值,右值,右值引用
左值表达式表示的是对象的标识或者地址,可以进行读取和写入的操作。这意味着你可以修改它,就像修改任何其他左值一样。可以使用它来初始化其他变量,但你不能修改它。右值可以用来提供初始值,但不能被修改。
2023-08-28 10:45:53
78
1
原创 OpenGL管线
几何着色器(可编写):赋予程序员操作一个图元(点,线,三角形)的能力。到达几何着色器阶段时管线已经完成三角形组合的过程,接下来几何着色器会让程序员访问三角形每一个顶点。当多个对象占据颜色缓冲区的相同像素时,保留最近观察者的对象来确定要保留的像素颜色。曲面细分着色器与几何着色器的区别:曲面细分着色器只能操作由它自己生成的三角形网格,并不能同时访问所有顶点。栅格化:栅格化的过程为了显示由三个顶点确定的三角形的像素位置。可以生成平滑的颜色渐变,实现真实的光照。,再由计算机将帧缓冲区的内容绘制到屏幕的一个窗口上。
2023-08-13 11:16:17
56
1
原创 常量指针与指针常量
指向整形常量的常量指针:int const * const p;// 它既不能在指向别的指针,所指向的值也不能改变;右边是指针,指针本身是变量;右边是类型,则指是常量。//指向整形常量的指针,它指向的值不可以改变;//它不能在指向别的变量,但指向的值可以改变;记忆技巧:主要看const关键字右边是什么。指针常量初始化:int * const。常量指针初始化:const。
2023-05-21 13:21:05
48
1
原创 Day03虚拟头结点YYDS
链表中除了查询外,对结点的操作要申请虚拟头结点。(已知头结点前一个结点才能对head头结点操作)计算A B两个链表长度的差值,先遍历长的链表,让两条链表同时遍历找出相同结点。两层for循环 第一层循环遍历A链表,第二层循环查找链表B与链表A相交结点。3.fast和slow同时移动,直到fast指向末尾,如题。定义fast指针和slow指针,初始值为虚拟头结点,如图。:交换链表中的节点时,断链时要用指针temp保存结点。
2023-02-18 19:03:26
50
原创 代码随想录Day03
翻转过程:首先要把 cur->next 节点用temp指针保存一下,cur->next指向翻转,以便链表断链后用来存储cur指针。循环移动pre和cur指针,最后cur 指针已经指向了null,循环结束,链表也反转完毕了。思想:定义临时结点,若头结点为待删除结点(head=head->next),临时结点为待删除节点(思想:定义cur结点为工作指针,定义pre结点(初始化为NULL)用来存储cur结点的指向地址。注意:①单独考虑头结点为待删除结点,且头结点后续结点也为待删除结点(用while不用if)
2023-02-17 16:48:56
105
原创 代码随想录02
有序数组的平方第一次想法是暴力解,题目是有序数组,所以应该有别的做法,没有想到双指针。收获:加深双指针的理解。注意:第一次循环内是i
2023-02-16 19:57:39
224
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人