- 博客(8)
- 收藏
- 关注
原创 C++智能指针
智能指针主要是为了解决内存忘记释放、内存过早释放、内存多次释放等问题,从而更好地对内存进行管理。(个人理解) 传统的裸指针虽然功能强大、使用灵活,但需要全程维护,容易出错。从而引入智能指针进行管理,可以把智能指针看做对于裸指针的包装。 智能指针有四种:auto_ptr(c++98)、shared_ptr(c++11)、unique_ptr(c++11)、weak_ptr(c++11),其中auto_ptr已被unique_ptr替代,不推荐使用auto_ptr。 智能指针是一种类模板。 shared
2021-10-12 19:44:28 193
原创 常量引用与const修饰的引用形参
常量引用:原变量不能通过此引用(别名)修改。 形式: char ch = 'a'; const &b = a; const修饰的引用形参:原理与常量引用类似。 形式: int func (const int &a) { return 1; } 特点:1.不能通过函数形参修改实参,从而防止实参被误修改; 2.增加输入参数的灵活性:普通引用形参(没用const修饰)不允许输入参数为const修饰的值(常量引用或常量)或右值,用const修饰后则...
2021-10-08 00:15:03 498
原创 常量指针与指针常量
常量指针:指针指向的内容不能通过指针修改。 形式一: char ch = 'a'; const char * p = ch; 形式二: char ch = 'a'; char const *p = ch; 指针常量:指针的本身存放的内存地址不能改变即指针的指向不能改变。 形式: char ch = 'a'; char * const p = ch; ...
2021-10-07 23:50:29 97
原创 C++内联函数
内联函数形式: inline int funcA(int a, int b) {//函数定义前加inline,为内联函数 return 1; } 内联函数的特点: 1.inline影响编译器,在编译阶段对内联函数进行处理,系统尝试将调用函数的动作替换为函数本体。从而提高性能; 2.inline只是对编译器的一种建议,编译器可做可不做,这取决于编译器的诊断功能; 3.普通函数的声明要写在头文件,定义要写在源文件。而内联函数的定义要写在头文件。因为其他调用这个内联函数的文件需要把函数本体include
2021-10-07 23:42:03 116
原创 malloc/free与new/delete
malloc/free是C中的函数,用于在堆区开辟释放空间。 用法: //malloc/free用法 int *p = (int*)malloc(sizeof(int)); if (p) { *p = 5; cout << *p << endl; free(p); } 特点:1.需要显式指定开辟空间的字节长度; 2.malloc返回值为void *,需要类型转换。 new/delete是C++中的操作符/关键字, 三种用法...
2021-10-05 22:57:12 78
原创 C++内存分区
关于C++内存分区的说法多种多样。 试图总结一下C++内存分区,不保证正确,如果有新发现再更新。 代码区:存储代码编译后的二进制文件。 静态存储区/全局区:存储全局变量,静态变量。 动态存储区:栈:系统开辟释放。 堆:由程序员开辟释放。 常量存储区:存字符串常量。 .bss段:存未初始化的全局变量和静态变量。 ...
2021-10-05 22:43:49 62
原创 滑动窗口算法
滑动窗口算法可以理解为一种双指针算法,其中包含一定的单调性,在处理数组时比较常用。 滑动窗口模板: int minSubArrayLen(int target, vector<int>& nums) { int cnt = 0; int length = INT_MAX; for (int right = 0, left = 0; right < nums.size(); right++) { cnt +
2021-10-04 23:02:24 193
原创 二分的几种写法
综合了力扣上的几种写法以及代码随想录的写法,感谢! 要点:明确区间定义,并在循环操作中保持不变(循环不变量原则)。 一、二分搜索单调数组的数(无重复) 1.左闭右闭 int binarySearch(vector<int> &nums, int target){ int left = 0, right = nums.size()-1; while (left <= right){ int mid = left + right >>
2021-09-30 21:10:18 455
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人