随笔分类 -  01_C/C++

摘要:一、关键词 类/结构体默认生成。 拷贝/移动 + 构造/赋值 = 组合不同方式有4种,除默认、析构,共计6种。 在使用时:拷贝/移动 + 赋值的,都是定义和赋值分开;拷贝/移动 + 构造的,都是定义和赋值一起。 二:知识点 默认构造函数 Student():age(0){}; 拷贝构造函数 Stud 阅读全文
posted @ 2024-07-26 10:13 Labant 阅读(14) 评论(0) 推荐(0)
摘要:一、关键词 const与不同类型结合 左结合律(别记左定值右定项了) 二:知识点 重点:const优先左结合而后右结合。意味着const若是左边有值(类型或指针)则与左边值结合,若是左边没有值则再与右边值结合。如int const *与const int *等价,效果都是指向的值不可改,指针可以指向 阅读全文
posted @ 2024-06-27 12:02 Labant 阅读(60) 评论(0) 推荐(0)
摘要:一、关键词 函数指针 二:知识点 函数指针使用typedef定义 //使用 typedef 定义函数指针 typedef int (*FuncType1)(int, int); 2. 函数指针使用`using`定义 // 使用 using 定义函数指针 using FuncType2 = int ( 阅读全文
posted @ 2024-06-27 10:28 Labant 阅读(30) 评论(0) 推荐(0)
摘要:一、关键词 简单数据类型、结构体在C和C++中的不同、C风格强制转换 二:知识点 简单数据类型如:int、double等,是不存在构造函数和复制构造函数等,是语言内建的类型。 结构体在C和C++这中有区别,c中给的结构体,是数据存储的一种形式,并不会有构造函数,数据简单数据类型结构体,而C++中的结 阅读全文
posted @ 2024-05-24 17:25 Labant 阅读(20) 评论(0) 推荐(0)
摘要:一、关键词 指针,二重指针 二:知识点 1. 指针的本身地址、指针所指向地址、指针所指向地址内容 本身地址:指针也是一个类型,通常是在64位系统上是8字节,32位是4字节。既然是类型对象就需要存储地址,因此本身地址指的是用于存储指针这个变量值的地址。 指针指向地址:指针是个变量,这个变量存储的值就是 阅读全文
posted @ 2024-05-20 16:42 Labant 阅读(133) 评论(0) 推荐(0)
摘要:一、关键词 **|(或)、&(与)、~(非)和^(异或)** 符号 描述 运算规则 & 与 两个位都为1时,结果才为1 或 或 两个位都为0时,结果才为0 ^ 异或 两个位相同为0,相异为1 ~ 取反 0变1,1变0 << 左移 各二进位全部左移若干位,高位丢弃,低位补0 >> 右移 各二进位全部右 阅读全文
posted @ 2024-05-18 18:44 Labant 阅读(239) 评论(0) 推荐(1)
摘要:一、关键词 Boost 二:安装 1、到官网[https://www.boost.org/]下载,我下载的是1.83 2、解压后点击 bootstrap.bat,会生成可执行程序-b2.exe 3、双击运行b2.exe自动编译,编译一般在2小时内。 三、实际运用 阅读全文
posted @ 2024-05-18 18:13 Labant 阅读(895) 评论(0) 推荐(0)
摘要:带有成员指针的结构体的拷贝 1.问题 使用结构体时,在析构时发生了**重复释放指针** 的错误。 2.原因 定义了QList<结构体>,使用append添加结构体对象并未此结构体中的指针分配了空间,append会执行值拷贝,此时会创建新的副本添加进QList中,值得注意的是:append执行拷贝时并 阅读全文
posted @ 2024-05-18 17:54 Labant 阅读(136) 评论(0) 推荐(0)
摘要:内存++注意事项 内存中的++的单位是不同的,比如char* 和int* 的++,前者是+1字节,后者是+4字节。 结构体变量的++也是相同的,不特殊处理的情况下是以变量结构体的大小为单位++。 若想固定每次++都是1怎么办? 可以把结构体强转化为char*这种一个字节为单位的类型指针, e.g: 阅读全文
posted @ 2024-05-13 16:13 Labant 阅读(9) 评论(0) 推荐(0)
摘要:结构体中 char * 位置对于整体copy的影响 char* 成员在结构体尾部 在尾部,char* 成员在malloc后可以直接使用memcpy 从结构体第一个字节进行拷贝,这是可以的。 char* 成员在结构体非尾部 在中部,char* 成员在malloc后可以直接使用memcpy,从结构体第一 阅读全文
posted @ 2024-05-10 17:07 Labant 阅读(16) 评论(0) 推荐(0)
摘要:迭代器的使用的小问题 2024.4.18 使用find返回的迭代器,每次返回都会分配本次迭代器,而每次都会开辟新的内存地址, 阅读全文
posted @ 2024-04-18 11:20 Labant 阅读(6) 评论(0) 推荐(0)
摘要:一、关键词 结构体指针强转为整型类,使用时在把整型强转为结构体指针 二、知识点 注意:1、这种的转化并不是用指针指向指针,而是目标指针的地址被作为一个值被保存在整型中,而整型中的值就是目标指针的地址。 2、需要实在64位机器还是32为机器,在32位用int就可以,而64位需要long进行转化以及存储 阅读全文
posted @ 2023-12-13 15:08 Labant 阅读(828) 评论(0) 推荐(0)
摘要:一、关键词 snprintf 二:知识点 //字节开始位置 实际输入为size-1 格式 数据 int snprintf ( char * str, size_t size, const char * format, ... ); 三、实际运用 阅读全文
posted @ 2023-12-12 09:50 Labant 阅读(10) 评论(0) 推荐(0)
摘要:关键词 std::async、std::paclaged_task、std::promise、std::future 知识点 #include <QCoreApplication> #include <thread> #include <mutex> #include <future> #inclu 阅读全文
posted @ 2023-12-01 12:32 Labant 阅读(92) 评论(1) 推荐(0)
摘要:1 //1、并发支持 2 //1.1、C++11 内存模型: 3 // a.原子性(Atomicity):对于原子类型(std::atomic),其成员函数的操作是原子的,不会被其他线程中断。 4 // b.可见性(Visibility):对于非原子类型,通过使用互斥量或同步操作来确保共享数据的可见 阅读全文
posted @ 2023-11-26 19:14 Labant 阅读(62) 评论(0) 推荐(0)