![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 60
菜鸡UP
清风拂山岗,明月照大江
展开
-
C++中的左值和右值
以前面那个例子,在函数模板f里调用函数g时,没有加forward,可以发现调用f时,即使传进去的参数是右值引用,但是从运行结果来看,f里调用函数g()时,传给函数g()的却变成了左值引用,这是因为传入给g()的是一个具名变量参数,左值是一个表示数据的表达式,它代表一个具名的内存位置,程序可以获取其地址,可以通过地址访问它们,是可被引用的数据对象。完美转发是C++11引入的一种特性,它是指泛型编程(模板编程)中,函数模板能够完全自己模板参数的类型传递给内部调用的其他函数,即参数左右值的属性不会发生变化。原创 2024-02-25 11:45:57 · 1078 阅读 · 0 评论 -
C++中的智能指针
在实际中,应尽量避免直接使用裸指针,而应优先选择智能指针,它们利用对象的生命周期来管理资源,避免了资源泄漏这些问题。原创 2024-01-28 23:27:11 · 883 阅读 · 0 评论 -
C++中变量存储区域
C++程序的内存空间由如下几部分组成:1、栈区(stack):存放程序中的局部变量(不包含static声明的变量);发生函数调用时,栈用来传递函数的参数和返回值2、堆区(heap):存放程序在运行过程中动态分配的数据对象(或者说是变量)。即new和malloc分配的内存区域是分配在堆区的3、程序代码区:存放程序的执行代码,其分配的大小在程序运行前就已经确定4、全局变量区:存放全局变...原创 2019-07-28 11:04:24 · 397 阅读 · 0 评论 -
new与malloc
指针真正的用武之地在于,在运行阶段分配未命名的内存以存储值。 ——C++ Primer Plusmalloc与new实现了程序在运行时动态分配内存,分配的内存块位于堆(heap)或自由存储区。malloc与new...原创 2019-07-27 19:31:41 · 143 阅读 · 0 评论 -
C++中变量的说明符与限定符
这些说明符和限定符决定了变量保留在内存中的时间(存储的持续性)和程序的那一部分可以使用它们(作用域和链接性)auto:自动类型推断register:说明该变量的使用频率比较高,变量采用寄存器存储,static:静态变量在整个程序执行期间都存在,分为静态全局变量和静态局部变量。静态全局变量意味着只对文件内部可见,其他 文件不能使用这个变量,即有...原创 2019-09-04 16:25:21 · 545 阅读 · 0 评论 -
内联函数(inline)
内联函数(inline)1、用法:在函数声明和定义的前面加上inline2、目的:内联函数(inline)是为了提高程序的运行速度所做的改进。程序中执行常规函数的调用时,需要一定的开销,比如将函数参数复制到堆栈,做来回的跳跃等等。3、内联函数调用则与常规函数不同:内联函数直接将函数代码...原创 2019-07-27 20:19:47 · 588 阅读 · 0 评论 -
成员初始化列表
对于一个类来说,在1、构造函数初始化列表中初始化数据成员 和 2、在构造函数中对他们赋值,得到的结果都是一样的。但是遇到以下三种情况时只能采用初始化列表方法: 对于const类型的成员变量,只能采用初始化列表的方法 对于reference的变量,也只能采用初始化列表的方法 类的构造函数需要调用其基类的构造函数时。 ...原创 2019-09-07 20:46:38 · 154 阅读 · 0 评论 -
LeetCode 岛屿数量
题目给定一个由'1'(陆地)和'0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。实例:输入:11110110101100000000输出:1示例2:输入:11000110000010000011输出: 3思路:这是一个典型的搜索问题,个人...原创 2019-09-12 17:14:33 · 123 阅读 · 0 评论 -
爬楼梯问题
题目: 假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。解析:假如要爬上第i阶(i>=2),则有两种方式: 1、从第i-1阶跳一步到第i阶 2、从第i-2阶跳两步到第i阶记f(i)为爬上第i阶的方法数量,则 ...原创 2019-09-27 17:07:23 · 159 阅读 · 0 评论