自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 智能指针

文章目录原理分类auto_ptrunique_ptrshared_ptr原理智能指针是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄漏(利用自动调用类的析构函数来释放内存)。通常是使用引用计数。智能指针类讲一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。RAII:利用对象生命周期来控制程序资源的技术。具备指...

2019-05-15 08:48:55 154

原创 单链表常见题型

文章目录合并俩个单链表链表是否带环带环链表环的长度带环链表环的入口链表是否相交合并俩个单链表//非递归Node<DataType>* Merge(Node&am

2019-01-23 19:55:27 291

原创 单链表详解(C++/常见题型)

文章目录链表的重要性链表的基本操作链表的基本成员函数链表的重要性链表的结构非常简单,由指针把若干个节点连接成链状结构。链表的创建、插入节点、删除节点等操作只需少许代码就能实现。链表是一种动态的数据结构,其操作需要对指针进行操作,因此有足够的基本功才能熟练操作链表。链表的基本操作链表的基本成员函数template<class DataType&a

2019-01-22 16:24:59 356 4

原创 类的默认成员函数

文章目录类的6个默认成员函数构造函数析构函数拷贝构造函数赋值运算符重载函数运算符重载函数赋值运算符重载const成员函数取地址及const修饰的取地址操作符重载类的6个默认成员函数 假设一个类中什么成员都没有(空类)。那么这个类中真的什么都没有吗?答案是否定的。每一个类在没有自主编写的情况下都会生成6个默认成员函数。6个默认成员函数函数作用构造函数初始化(不是创...

2019-01-21 10:54:06 150

原创 深浅拷贝(C++)详谈

文章目录拷贝构造函数的定义浅拷贝深拷贝传值引起无穷递归问题拷贝构造函数的定义拷贝构造函数定义如下:拷贝构造函数是构造函数的一个重载形式。拷贝构造函数的参数只有一个且必须使用引用传参,使用传值方式会引发无穷递归调用。使用拷贝构造时势必要牵扯到深浅拷贝问题。那么什么是深浅拷贝呢?浅拷贝也称位拷贝,编只是将对象中的值拷贝过来(默认生成的拷贝构造函数即是浅拷贝)class String...

2019-01-21 10:13:39 270

原创 LInux下生成静态库和动态库

文章目录库库是什么库的种类库的意义库的命名静态库与动态库生成实例编译多个源文件静态库动态库Linux下库浅谈查看一个可执行程序依赖哪些库可执行程序在执行时定位共享库文件如何让系统找到新库编译参数分析库库是什么在所有平台下都存在着大量的库。库本质上是一种可执行的二进制代码,可以被操作系统载入内存执行。(以下内容只限于Linux平台)库的种类Linux下的库有俩种:静态库和共享库(动态...

2019-01-20 11:21:31 1094

原创 一步步用GDB调试程序

GDB的优势 GDB是一个强大的命令行调试工具。命令行的优势是可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利。命令行软件的优势可以容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 UNIX下的软件相比Windows下的软件跟更有机的结合。Windows下的图形处理软件基本上是各自为营,互相不能调用,不利于各种软件的...

2019-01-20 08:59:37 422

原创 C和C++常见比较和关键字

const#define有数据类型无数据类型编译器会进行类型安全检查只进行字符替换,并可能产生错误可以进行调试(有集成化的调试工具)不能调试...

2019-01-17 19:54:17 685

原创 类和对象初识

面向对象的三大特性:封装性、继承性、多态性。封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。继承:是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。其继承的过程,就是从一般到特殊的过程。多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术。...

2019-01-17 16:09:29 103

原创 二叉树(C++)详解

pragma once#include<iostream>#include<stack>#include<queue>using namespace std;template<class T> struct Node{ struct Node<T>* _l

2019-01-17 11:24:47 383

原创 排序详解——归并排序

归并排序思想:归并排序是建立在归并操作上的一种有效的排序算法,该采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并void Merge(int* arr, int left1, int right1, int left2, int right2, int* tmp){ int...

2019-01-16 10:53:37 192

原创 排序详解——快速排序

快速排序思想:通过快速排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。左右指针法int QSort_1(int* arr, int left, int right){ int key = arr[right]; int keyindex ...

2019-01-16 10:32:37 192

原创 排序详解——选择排序与堆排序

选择排序思想:对比数组中第一个(前一个)元素和后一个元素的大小,如果后面的元素比较小则用变量min记住它的位置(此时后一个元素变为了前一个元素),接着比较它后一个元素直至比较完整个数组,此时min记录的为整个数组最小的数的位置,将它与第一个元素交换,此时找到了最小的数。然后找出次小的数与数组第二个元素交换。以此类推下去即完成了排序。void SelectSort(int* arr, in...

2019-01-15 15:46:29 148

原创 排序详解——插入排序与希尔排序

插入排序思想:有一段总序列,如果把第一个值看成一个有序序列,其余值可以看为无序序列。把无序序列的第一个值依次到最后一个值往有序序列合适的位置插入,那么得到的总序列即为有序序列。void InsertSort(int* arr, int n){ for (int i = 0; i < n - 1; ++i) { int end = i;//记录有序序列最后一个值 int c...

2019-01-15 14:34:16 159

原创 C++多态——虚函数表详谈

前篇C++——多态已经介绍了多态以及基类的虚函数表,下面详细了解一下派生类的虚函数表模型单继承的虚函数表class Base{public: virtual void Func1() { cout << "Base::Func1()" << endl; } void Func2() { cout << "Base::Func2()" <<...

2019-01-14 16:47:47 601

原创 C++多态

多态的概念多态是面向对象设计中的一个概念,与继承、封装并称为面向对象设计的三大特性。多态是不同的对象完成相同的行为会产生不同的结果。例:游乐园买票时,成人全价,儿童可半价。发工资时,上层领导工资较多,底层员工较少。多态的实现​​​​​​​多态在继承的基础上调用对象必须是指针或引用被调用的函数必须为虚函数且完成了虚函数的重写虚函数在函数前加virtual关键字的非...

2019-01-14 11:43:59 212

原创 C++继承——菱形继承

学习C++继承(点此进入)肯定脱离不了多继承,而菱形继承就是多继承的一种特殊情况。菱形继承:B类和C类分别继承了A类,D类又同时继承了B类和C类。此时会引起一个巨大的坑——数据冗余和二义性问题。下面附上代码:class A{public: int _a;};class B : public A{public: int _b;};class C : publ...

2019-01-06 09:55:31 196

原创 C++继承

继承是面向对象设计中的一个概念,与多态(点此进入)、封装并称为面向对象设计的三大特性。继承是使代码复用的一种手段,是类设计层次的复用,可以使子类(派生类)具有父类(基类)的属性和方法或者重新定义、追加属性和方法。下面举一个最基本的例子说明继承:class A{public: void Func1() {}; void Func2() {};};class B : pub...

2018-12-30 22:47:06 179 1

原创 LInux进程间通信——消息队列

消息队列:           消息队列提供了一个从一个进程向另一个进程发送一块数据的方法。           每个数据块被认为是有一个类型,接收者进程接受的数据块可以有不同的的类型值。           消息队列每个消息的最大长度是有限的,每个消息队列的总的字节数是有上限的,系统上消息队列的总数也有⼀个上限。 IPC对象:           IPC对象是活动在内核级...

2018-10-24 16:45:14 112

原创 常用编辑器与编译器对比?

编辑器:1、Vim (所有平台)  vim使用脚本和插件可以变得非常适合扩展。可以支持GUI或者命令行。同时可以支持所有的操作系统。在大多数的Linux系统都预先装。2、 ATOM Atom是免费开源的文本和代码编辑器,它是运行在Atom Shell上,几乎所有的设置都可以通过设置面板来更改配置,极为现代化。而且它简单易用,上手很快。3、TextPad (Windows)...

2018-10-07 15:16:29 542

原创 堆的基本操作

本次完成了堆的相关操作:头文件如下:#pragma once#include <assert.h>#include <malloc.h>#include <stdio.h>typedef int HPDataType;typedef struct Heap{ HPDataType* _a; int _size; int _capac...

2018-08-24 20:45:28 127

原创 栈和队列面试题

一、实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值)的时间复杂度为O(1)///////////////////////////////////////////////////////////////////////.h#include "Stack.h"typedef struct MinStack{ Stack st; Stack minst...

2018-08-21 18:33:37 122

原创 二叉树的基本操作

本次写了一些二叉树的基础操作代码如下:头文件如下:#pragma once#include <stdio.h>#include <malloc.h>#include <assert.h>#include <stdlib.h>//struct TreeNode//{// // data;// TNDataType data;...

2018-08-21 17:31:31 115

原创 栈与队列的应用——迷宫问题

在熟悉了栈的基本操作之后,本人试着解决了迷宫问题过程如下:再次用的是回溯法解决。具体想了解去百度!!!!!首先在头文件里定义了三种不同难度迷宫代码如下:#pragma once#include "Stack.h"#define N 6//static int maze[N][N] = {// {0,0,0,0,0,0},// {0,0,1,0,0,0},// {0,0...

2018-08-18 19:50:22 1802

原创 栈和队列的基本操作

在研究了栈与队列之后,写出了栈和队列的基本接口如下:队列-----------------------------------------------------------------------------------------头文件如下:#pragma once#include <stdio.h>#include <malloc.h>#inclu...

2018-08-15 21:23:00 162

原创 Linux下的重要命令

一、/du/功能:显示每个文件和目录的磁盘使用空间。[sssss@bogon code]$ lsa.out file test test.c[sssss@bogon code]$ du a.out8 a.out-a或-all 显示目录中个别文件的大小。 -b或-bytes 显示目录或文件大小时,以byte为单位。 -c或–total 除了显示个别目录或文件的大小外,...

2018-08-11 16:38:05 352

原创 LINUX权限的基本概念

 LINUX权限管理一、文件访问者的分类(人)文件和文件目录的所有者:u——User 文件和文件目录的所有者所在的组的用户: g——Group其他用户: o——Others二、文件访问权限的种类(事物属性)a)基本权限i.读 (r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。ii. 写 (w/2): Write对文件...

2018-08-11 14:46:47 1111

原创 数组的基本作用!!!

       所谓数组,是无序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 这些无序排列的同类数据元素的集合称为数组。int compact(type *Arra...

2018-04-18 15:22:08 8937

原创 你所不知道的坑——————C语言运算符!!!!!

C语言中运算符作为最基本的结构,起着不可忽视的作用,而像我们这样的新手,初期很容易在这里栽坑。因此操作符的总结是必要的。———————————————————下面就是详细的分析各种操作符——————————————————— 一、 算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。二、 关系运算符:用...

2018-04-04 15:50:17 458 1

原创 now

回想前两年混过的时光,我觉得毫无成绩。作为即将升入大三的人,我对毕业后的应聘毫无自信。我认为我需要在现在做出一些改变。我学的专业和编程有些许联系,加上自我认为编程挺有意思,因此我决定从此刻起学习这门技术。现在的信息时代对这门技术要求甚多,但这也让许多人望而却步。但我坚信我可以坚持下去。同时作为一位游戏爱好者,个人对开发游戏的公司本身自带好感buff,所以,我技术有成之时,我希望我能进入入腾讯,网易...

2018-04-02 20:27:48 91 1

空空如也

空空如也

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

TA关注的人

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