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