![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++学习笔记
文章平均质量分 77
记录学习C++遇到的知识点
鱼在树上飞
纸上得来终觉浅,绝知此事要躬行
展开
-
GDB常用调试方法及其底层原理
介绍了常用的GDB调试方法,各种断点的使用;介绍了GDB调试的底层原理。原创 2023-06-26 22:00:56 · 3390 阅读 · 3 评论 -
C/C++内存泄漏原因分析与应对方法
分析了C/C++程序中常见的内存泄漏原因及其危害,并给出了几种解决办法原创 2023-07-12 21:20:35 · 3015 阅读 · 0 评论 -
vector源码解析及扩容优化
介绍了vector的原理并分析了其源码,对vector扩容过程中的优化进行了讨论原创 2023-05-16 21:33:21 · 1042 阅读 · 0 评论 -
C++网络编程select函数原理详解
详细介绍了C++网络编程中重要的IO复用技术所使用到的select函数,介绍了文件描述符监视集合fd_set的使用原创 2022-10-29 20:11:57 · 6096 阅读 · 0 评论 -
GCC编译优化与循环展开
简要介绍了GCC编译器的各级优化策略及原理,介绍了编译优化中的循环展开原创 2023-04-18 11:25:44 · 1411 阅读 · 5 评论 -
C++单例模式——懒汉与饿汉以及线程安全
详细介绍了C++单例模式的饿汉式和懒汉式及其区别;介绍了两种线程安全的懒汉式单例模式;介绍了static变量在Linux进程中的存储原创 2022-10-31 21:53:47 · 2390 阅读 · 2 评论 -
map、unordered_map和vector的初始化和底层机理的差别
由力扣1207题独一无二的出现次数,而引出unordered_map的初始化和map以及vector的不同,并讲解了这些STL容器的底层机制原创 2022-10-06 15:37:16 · 2539 阅读 · 0 评论 -
C/C++结构体内存对齐
C/C++结构体内存对齐原理的详细解释,详细介绍对齐规则,并利用一些示例进行讲解原创 2022-10-06 15:26:20 · 1967 阅读 · 0 评论 -
C++实现大数加减法
C++实现大数加减法,涉及类的隐式转换,运算符重载,容器基本操作,终端获取输入的办法等等基础知识点原创 2022-09-26 17:36:45 · 2873 阅读 · 5 评论 -
sort()函数比较器写法及其注意事项,以力扣1005为例
C++标准库函数sort()的使用注意事项,并以力扣第1005题为例原创 2022-09-25 15:56:33 · 1226 阅读 · 0 评论 -
C++范围for语句和迭代器失效
一.向容器vector中添加元素首先复习下一般for循环实现向vector对象中添加元素vector<int> v2;//创建空的vector对象for(int i = 0; i != 100; ++1){ v2.push_back(i);}C++标准要求vector能在运行时高效快速地添加元素。相比于定义vector对象时设定其大小。更有效的办法是先定义一个空的vector对象,再在程序运行时动态添加元素,这点和java不同。(另外,for循环中使用 != 而不是 < ,原创 2022-03-13 17:07:44 · 1728 阅读 · 0 评论 -
【C++基础】complex类的实现
C++complex类的实现原创 2022-06-12 23:25:52 · 980 阅读 · 0 评论 -
数组越界访问
数组越界访问情形原创 2022-05-14 22:33:33 · 1377 阅读 · 0 评论 -
【C++基础】常量引用作形参解决递增运算符重载的问题
上回发的帖子里讲了为什么要用常引用作形参【C++基础】常量引用、指针常量与常量指针 ; 顶层const与底层const今天又遇到常量引用作形参的一个例子,在学习黑马视频的重载++运算符时,有一个错误。它的重载左移运算符<<的第二个形参为普通引用MyInteger& postream& operator<<(ostream &cout, MyInteger& p){ cout << p.m_Num << endl; re原创 2022-04-25 21:41:42 · 1200 阅读 · 1 评论 -
【C++基础】常量引用、指针常量与常量指针 ; 顶层const与底层const
一、常量引用我们用引用作形参往往是为了能修改对象的值,但有时候又用“对const的引用”,如const int& a,作为形参,这样就使得该对象不能被函数修改了,那这样用引用的意义不就没有了,和传值(如int a)作形参不就一样了?事实上,一方面引用避免了拷贝,对于占用内存大的对象来说,传引用依然比传值会更有效率,所以传引用作形参还是有意义的。另一方面,如果我们不希望被引用绑定的对象被该函数修改,所以我们就会采用“对常量的引用”,简称常量引用,如const int& r = i;这样引原创 2022-04-24 22:09:34 · 948 阅读 · 0 评论 -
【C++基础】浅拷贝与深拷贝
需要的预备知识:构造函数(无参或默认构造函数、有参构造函数、拷贝构造函数),析构函数,new和delete操作符(堆区内存的开辟与释放)。浅拷贝浅拷贝是简单的赋值操作,只拷贝一个指针,没有开辟新的地址,拷贝的指针和原来的指针指向同一块地址,这样调用析构函数释放堆区资源的时候,因为如果原来的指针指向的内存被释放了,后面再释放浅拷贝的指针,会带来内存重复释放的问题,从而报错。使用编译器默认提供的拷贝构造函数,就是浅拷贝如下代码来自黑马程序员C++课程,我们new一个指针m_Height来测试下:#i原创 2022-04-12 12:04:46 · 459 阅读 · 0 评论 -
【C++基础】调用函数时参数的传递过程发生了什么?
今天看阿秀的校招笔记指针和引用的区别那块,遇到一段代码,对其输出不太理解:void test(int *p){ int a=1; p=&a; cout<<p<<" "<<*p<<endl;}int main(void){ int *p=NULL; test(p); if(p==NULL) cout<<"指针p为NULL"<<endl; return 0;}//运原创 2022-03-21 20:51:49 · 1404 阅读 · 4 评论