自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 链表相关操作——链表的反转和查找链表中间结点

1 链表的反转 1.1 原地反转 注意:这里针对的是有头结点的链表 思路:使用两个指针p, q,指针p永远指向原列表的第一个结点,指针q指向要反转的下一个结点。 开始时的指针位置: 指针交换(1)(2)(3)是交换的先后顺序。 第一次循环完之后 依次循环可得到反转的列表。 void Reverse(LinkList *list) { //原地反转法 LinkList p, q; p =...

2019-04-09 23:24:12 198

原创 数据结构之线性表的顺序存储结构实现

数据结构之线性表的顺序存储结构实现1 定义2 数据结构及操作2.1 数据结构2.2 操作3 主要操作实现3.1 创建一个新链表3.2 销毁3.3 插入操作3.4 获取元素操作3.5 删除操作3.6 测试 1 定义 线性表(List,链表):零个或多个数据元素的有限序列 元素之间是有顺序的,若存在多个元素,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继。 线性表的顺...

2019-04-08 21:55:35 479

原创 死锁程序

死锁程序1 锁顺序死锁2 动态锁顺序死锁 1 锁顺序死锁 #include <iostream> #include<pthread> using namespace std; pthread_mutex_t left = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t right = PTHREAD_MUTEX_INITIALIZER...

2019-03-28 23:36:42 412

原创 死锁

死锁1 死锁概念2 发生死锁的四个必要条件3 死锁处理3.1 死锁预防3.1.1 互斥3.1.2 破坏占有并等待条件3.1.3 破坏资源不可被抢占条件3.1.4 破坏循环等待条件3.2 死锁恢复3.2.1 进程终止3.2.2 资源抢占 1 死锁概念 由于两个或者两个以上的(进程)去抢夺一份资源而造成阻塞的状态叫做死锁, 如果出现了死锁,会造成线程的循环等待,如果没有外力的帮助,就会一直维持着某种状...

2019-03-28 23:17:26 169

原创 多线程

多线程基础1 线程相关概念2 Linux多线程基本函数3 pthread_join和pthread_exit的区别4 例子 1 线程相关概念 线程是CPU使用的基本单元,它由线程ID,程序计数器,寄存器集合和栈组成、它与属于同一进程的其他线程共享代码段、数据段和其他操作系统资源,如打开文件和信号。 多线程的优点:对用户响应的改进,进程内的资源共享, 经济和利用多个处理器体系结构的能力。 2 L...

2019-03-28 15:07:55 96

原创 拷贝控制操作

拷贝控制操作1 拷贝构造函数2 拷贝赋值函数3 析构函数 1 拷贝构造函数 如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数。 class Test { public: Test() = default; TEst(int m_x): m_x(x) { } Test(const Test &amp;); //拷贝构造函数 private...

2019-02-28 21:47:52 163

原创 智能指针

智能指针1 变量保存2 智能指针2.1 shared_ptr(1)shared_ptr的定义和使用:(2)shared_ptr的拷贝和赋值(3)shared_ptr和new结合使用(4)不要混合使用普通指针和智能指针(5) 不要使用get 初始化一个只能指针或为一个指针赋值 1 变量保存 静态内存区:保存局部static对象、类static数据成员以及任何函数之外的变量。 栈内存:保存定义在函数...

2019-02-26 22:42:54 116

原创 函数指针

函数指针1 定义2 初始化3 函数指针的使用3.1 普通调用3.2 函数指针做形参4 重载函数的指针5 返回指向函数的指针6 C++函数指针6.1 C++其他函数(指针)定义方式及使用6.1.1 typedef与decltype组合定义函数类型6.1.2 使用方法注意事项 函数具有可赋值给指针的物理内存地址,一个函数的函数名就是一个指针,它指向函数的代码。一个函数的地址是该函数的进入点,也是调用函...

2019-02-23 22:07:31 212

原创 C++的类型转换

C++的类型转换隐式类型转换何时发生隐式类型转换显式类型转换命名的强制类型转换static_castconst_castreinterpret_cast旧式的强制类型转换 隐式类型转换 何时发生隐式类型转换 在大多数表达式中,比int类型小的整形值首先提升为加大的整数类型。 在条件语句中,非布尔值转换成布尔值。0为FALSE,非0为true 初始化过程中,初始值转换成变量的类型;赋值语句中,右侧...

2019-02-21 21:50:06 110

原创 C++的引用和指针

C++的引用和指针引用引用的定义引用在程序中的几种定义 引用 引用的定义 引用给对象起了另外一个名字,即所谓的别名。引用并非对象,它只是为一个已经存在的对象所起色另一个名字。 定义引用时,程序把引用和 它的初始值绑定在一起,而不是将初始值拷贝给引用(关于这点尤其是在自定义的类时需要注意,构造函数与拷贝构造函数)。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。因为无法令引用重新绑定到另外一...

2018-12-30 11:47:35 118

空空如也

空空如也

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

TA关注的人

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