自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++迭代器失效

迭代器失效就是迭代器底层对应指针所指向的空间倍销毁了,导致使用了一块已经被释放了的空间。容器操作可能使迭代器失效,一个失效的迭代器将不再表示任何元素。使用失效的迭代器是一个严重的程序设计错误,很可能产生与使用未初始化化指针一样的问题。.........

2022-06-27 08:21:20 3272 3

原创 C++关键字系列【二】:mutable、explicit

`mutable`的中文意思是`可变的`,刚好是const的反义词。被mutable修饰的变量永远都是可变的,即使在可以const成员函数内,其依然可变。在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数,不能发生相应的`隐式类类型转换`,只能以显示的方式进行类类型转换。...

2022-04-24 22:37:08 820 7

原创 C++变量初始化形式及其默认初始值

在C++中有多种变量初始化形式,本文旨在搞懂各种初始化的区别,以及在默认初始化情况下,变量的初始值情况。

2022-04-18 23:31:22 10169 9

原创 一文搞懂函数指针

指针函数是函数,返回值是指针。函数指针是指针,指向的是函数。

2022-04-06 20:08:49 1241 9

原创 C++关键字系列【一】:typedef、using、auto、decltype

typedef和using是两种定义类型别名的方法,类型别名是一个名字,使用类型别名可以让复杂的类型名字变得简单明了、易于理解和使用,还有助于程序员清楚地知道使用该类型的真实目的。auto和decltype分别是类型说明符合类型指示符,都是用于解决人为识别表达式类型,通过编译器来自行推断表达式的类型。

2022-04-05 21:44:22 1294 9

原创 C++ const和constexpr详解

使用变量的好处是当我们觉得变量值不合适时可以随时调整,但是这也会带来弊端,比如容易无意间改变了它的值,为了避免这种情况,可以用关键字const对变量的类型加以限定。但是使用const进行声明时,我们需要人为的验证赋给const对象的初始值是不是常量表达是,在复杂系统中,有时候很难分辨,而使用constexpr进行声明时,可以由编译器来验证变量是不是常量表达式。

2022-04-02 19:02:52 8404 13

原创 C++内联函数

函数有很多优点,比如函数可以降低代码冗余,提高代码可读性;使用函数可以确保行为的统一,每次相关操作都能按照同样的方式进行但函数也有一个潜在的缺点,对于逻辑简单且代码量少的函数,其函数的调用比求等价表达式的值要慢一些。而内联函数的优点就是可以避免函数调用的开销,如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方。

2022-03-31 16:50:09 1277 8

原创 指针和引用

指针【指向】某个对象,是因为指针存放某个对象的地址,通过该地址可以达到间接访问该对象的目的。引用是一个种特殊的指针,该指针不允许改变其指向,所以我们常用【绑定】来描述引用和对象之间的关系。且引用并非对象,相反的,它只是为一个已经存在的对象起的另外一个名字。

2022-03-30 20:53:43 1561 6

原创 C/C++ 内存对齐

什么是内存对齐为了提高程序的性能,数据结构应该尽可能地在自然边界上对齐。为什么需要内存对齐1、便于移植:不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、提高处理器访问速度:对于未对齐的内存,处理器可能需要访问两次内存才能将数据完全读出,而对于对齐的内存,处理器只需要一次即可。对于原因2具体解释一下:尽管内存是以字节为单位,但是大部分CPU并不是按字节块来存取内存的。它一般会以2的n次方个字节为单位来存取内存,将上述这些存取

2022-03-28 20:11:33 2452 7

原创 C++智能指针:unique_ptr、shared_ptr、weak_ptr

shared_ptr:允许多个指针指向同一个对象unique_ptr:独占所指向的对象weak_ptr:弱引用,指向shared_ptr所管理的对象。可以有效解决循环引用的问题

2022-03-26 15:23:49 1167

原创 指针数组和数组指针

指针:指针相当于一个变量,不过它存放的是其它变量在内存中的地址。数组:数组是用于储存多个相同类型数据的集合,且数组中的元素在内存中是连续存放的指针数组和数组指针的区别?指针数组(array of pointers):本质上是一个数组,只不过数组中的所有元素都是指针类型;数组指针(a pointer to an array):本质上是一个指针,只不过该指针指向一个数组的首地址。优先级:() > [] > * > +指针数组指针数组的定义int* a[4];

2022-03-22 16:38:15 2606 3

原创 字符数组和字符串的区别

字符串是以结束符(‘\0’)结束的字符数组,其在创建时,\0会自动添加到结尾。sizeof()是运算符,而不是一个函数,其作用是:获得对象所占的字节数, 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。strlen(…)是函数,要在运行时才能计算,其作用是:返回字符串的长度。 参数必须是字符型指针(char*), 且必须是以’\0’结尾的。返回的长度大小不包括’\0’。

2022-03-21 14:54:29 1737

空空如也

空空如也

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

TA关注的人

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