
C++
UBU1994
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
左值--右值--左值引用--右值引用
**左值:**可以取地址、有名字的、非临时的**右值:**不能取地址、没名字的、临时的左值引用要求右边的值必须能够取地址,如果无法取地址,可以使用常引用右值引用用来绑定到右值,然后本来要被销毁的右值的生存期延长至与绑定它的右值引用的生存期。右值引用减少了对象构造和析构达到高效的目的。...原创 2022-02-17 16:57:38 · 145 阅读 · 0 评论 -
无法解析的外部符号问题
无法解析的外部符号问题1、头文件是否包含全(对应cmake文件的include_directories)2、检查依赖文件和需要链接的库(add_dependencies和target_link_libraries)原创 2021-09-27 20:39:22 · 1159 阅读 · 0 评论 -
C++多线程条件变量和虚假唤醒
C++多线程条件变量和虚假唤醒条件变量:条件变量是利用线程间共享的全局变量(关键段、读写锁)进行同步的一种机制。为了防止其他线程竞争,条件变量的使用总是和一个互斥锁结合在一起。它主要实现两个动作:1)线程等待某个条件,条件为真则继续执行,条件为假则将自己挂起(为了避免忙等待,节省CPU资源);2)线程执行某些处理后,条件成立,则会通知该等待线程继续执行。功能函数BOOL SleepConditionVariableCS(PCONDITION_VARIABLE ConditionVariable原创 2021-09-04 16:42:06 · 1493 阅读 · 0 评论 -
C++ 字节对齐
字节对齐内存字节对齐机制,就是为了最大限度的减少内存读取次数。我们知道CPU读取速度比内存读取速度快至少一个数量级,所以为了节省运算花费时间,只能以牺牲空间来换取时间了。pragma pack(n)#pragma pack(n) 指定编译器的对齐参数数用法:#pragma pack(n)#pragma pack()另外:#pragma pack(push) //保存当前对齐状态#pragma pack(push,4) //保存当前对齐状态,并设定为4字节对齐#pragma p原创 2021-08-09 16:35:35 · 445 阅读 · 0 评论 -
C++ 四种转换运算符
四种转换运算符const_castconst_cast用来移除变量的const限定符或者volatile限定符。常用于函数传参用到const变量,但是该函数参数是非const类型,需要做一个类型转换,dynamic_cast1、该运算符把express转换为type类型,但是type必须是类的指针、引用或者void*2、如果type-id是类指针类型,那么exdivssion也必须是一个指针,如果type-id是一个引用,那么exdivssion也必须是一个引用。3、dynamic_cast主原创 2021-08-09 16:32:54 · 181 阅读 · 0 评论 -
C字符数组与string对象的区别
在C++有string类前,C字符数组长用于字符串操作,C语言库提供了函数来完成各种操作。string对象的出现,使得字符串操作更为简便。声明初始化的不同字符数组若声明时不初始化则必须给定其长度;string类不受限制,因为其长度会根据给定内容自动调整;char charr1[10]; //正确char charr1[] = “great”; //正确char charr1...原创 2020-03-08 19:35:33 · 397 阅读 · 0 评论 -
#pragma pack(n)以及#pragma pack(push)
数据在计算机内存储涉及到内存字节对齐机制,它是为了最大限度的减少内存读取次数。因为CPU读取速度比内存读取速度快至少一个数量级,所以为了节省运算花费时间,只能以牺牲空间来换取时间了。#pragma pack(n)#pragma pack(n) 其作用是指定编译器的字节对齐参数为n用法#pragma pack(n)代码#pragma pack()代表在这之间的代码数据按n字节对齐进...原创 2020-02-23 18:31:35 · 439 阅读 · 0 评论 -
前序、后序、中序遍历以及二叉树的重建
二叉树是一种很常见的数据结构,二叉树有三种遍历方法,分别是前序遍历、后序遍历、中序遍历。现总结一下在已知前序、中序求整个二叉树,以及已知中序后序求二叉树的方法。三种遍历方法简介首先简单介绍一下二叉树的三种遍历方法。前序遍历:以 根结点 -> 左结点 -> 右结点的顺序遍历。中序遍历:以 左结点 -> 根结点 -> 右结点的顺序遍历。后序遍历...原创 2020-02-16 20:39:53 · 199 阅读 · 0 评论 -
通俗易懂KMP模式匹配法及代码实现
最近碰到一道KMP字符串匹配题目,首先觉得用自己的笨办法应该也能做,子字符串分别于母字符串匹配,若匹配不成功右移一位,这样做对于简单字符串可以在规定的时间内完成,但是对于稍复杂字符串则匹配时间过长,超出规定的运行时间。于是学习了KMP模式匹配法。什么是KMP模式匹配KMP模式匹配是一种高效的字符串匹配方法。它最大的特点就是充分利用的模式串(也就是子串)的隐含内在特点,匹配过程不再像传统方法那样...原创 2020-02-12 23:56:14 · 697 阅读 · 0 评论 -
char*与string、sizeof与strlen的区别及使用方法
char*与string、sizeof与strlen的区别及使用方法char*char*的使用string类型string类常用方法sizeof、strlen的区别参考原文地址:linkchar*char*是一个指向字符的指针,是一个内置类型。可以指向一个字符,也可以表示字符数组的首地址(首字符的地址)。我们更多的时候是用的它的第二的功能,来表示一个字符串,功能与字符串数组char ch[n...原创 2020-02-03 17:19:00 · 1228 阅读 · 0 评论