自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++实现基本栈和队列

栈和队列是最基本的数据结构,自己实现栈和队列可以更好帮助自己理解和使用c++标准库中为我们提供的栈和队列的操作 //栈---通过链表实现 template struct Node { T _value; Node* _next; Node() { _next = NULL; } Node(T t) { _value = t; _next = NULL; }

2017-10-03 20:53:16 499

原创 c++智能指针那些事

在总结智能指针前,要先跟大家说一说RAII RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。  他的思想是资源分配即初始化,定义一个类来封装资源的的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确释放和初始化。    

2017-10-03 14:45:15 320

转载 c++菱形继承

我们在谈到c++,通常会谈到c++的三个特性 封装、继承、多态

2017-08-03 21:07:27 350

原创 c++中的多态和多态对象模型

1.什么是多态? 多态顾名思义,就是“多种形态” 是

2017-08-02 16:37:36 409

原创 c++实现双向链表

typedef int DataType; struct ListNode { ListNode* _next; ListNode* _prev; DataType _data; ListNode(DataType x) :_next(NULL) ,_prev(NULL) ,_data(x) {} }; class List { typedef

2017-07-27 16:41:54 349

原创 c++实现单链表

typedef int DataType; struct SListNode { SListNode* _next; DataType _data; SListNode(DataType x) :_data(x) ,_next(NULL) {} }; typedef SListNode Node; class SList { public: SLi

2017-07-27 12:56:46 355

原创 c++实现顺序表

typedef int DataType; #define DEFAULT_SZ 3 class SeqList { public: SeqList() { _array = (DataType*)malloc(sizeof(DataType)*DEFAULT_SZ); _size = 0; _capacity = DEFAULT_SZ; memset(_array

2017-07-27 12:55:37 360

原创 模拟实现String类增删查改

String是C++中的重要类型,程序员在C++面试中经常会遇到关于String的细节问题,甚至要求当场实现这个类。只是由于时间关系,可能只要求实现构造函数、析构函数、拷贝构造函数等关键部分。 String的实现涉及很多C++的基础知识、内存控制及异常处理等问题,仔细研究起来非常复杂,本文主要做一个简单介绍和讲解模拟实现String类的增删查改。 class String { publ

2017-07-25 10:52:03 380

原创 c++深拷贝、浅拷贝、写时拷贝

【简要介绍一下c++中的拷贝构造函数】: c++拷贝构造函数是c++6大默认成员函数之一,以下几种情况会用到c++中的拷贝构造函数  1)用已经存在的同类的对象去构造出另一个新的对象  2)当函数的形参是类的对象时,这时调用此函数,使用的是值的拷贝,也会调用拷贝构造函数  3)当函数的返回值是类的对象时,这时当函数调用完后,会将函数的对象拷贝构造出一个临时的对象并传给函数的返回处

2017-07-25 10:20:28 556

原创 c++动态内存管理

我们在进行c++动态内存管理的学习之前,先让我们回顾一下c中的动态内存管理的细节。

2017-07-19 16:17:15 548

原创 C++基础之引用与指针的区别与联系、常引用使用时应注意的问题

什么是引用? 引用不是重新定义一个变量,而是给已经定义好的变量起了别名。 定义的格式为: 类型 &引⽤变量名 = 已定义过的变量名; 如下代码: #include using namespace std; int main() { int a = 10; int& n = a; cout<<a<<endl; cout<<n<<endl; cout<<&a<<end

2017-07-13 18:03:46 430

原创 C++函数重载实现的原理以及为什么在C++中调用C语言编译的函数时要加上extern "C"声明

C++相对于C语言而言支持函数重载是其极大的一个特点,相信在使用C语言的时候大家如果要写一个实现两个整型数据相加的函数还要写一个浮点型数据相加的函数,那么这两个函数的名字绝对不可以一样,这样无疑在我们使用这个函数的时候增加了复杂性,但是在C++中我们却可以很好的解决这个问题,因为在C++中函数是支持重载的也就是说两个函数的函数名可以一样,这样并不会出现函数名重定义的问题。 但是我们在使用的时候也

2017-07-13 17:04:19 658

原创 程序的链接+编译过程

源文件经过翻译环境把他变成了额一个可执行程序,这个翻译环境主要进行了两个工作,一个是编译,另一个是链接,在编译的过程中,是为了把源文件(.c)搞成目标文件(.obj/.o),而多个目标文件经过我的链接库链接作用,形成了我的可执行文件,那么在我们的编译过程中,又分为了三个小过程,首先是预处理器处理,在这个过程中主要进行文本的操作,包括注释的删除、头文件的包含和#define宏定义的标识符和宏的替换(

2017-04-24 22:37:21 312

原创 c语言中数组和数组的一些计算

1.数组的创建 元素类型 数组名 []     eg:int arr[10] 注意:[]内是一个常量表达式,用来指定数组的大小 2.数组的初始化 若指定数组大小,可以不进行初始化,若数组完全初始化后,可以不指定其大小 注意:字符串放在字符数组中,默认后面有'\0',字符数组是里面有哪些元素,就是哪些元素.. 3.指针初步,指针是一个专门用来存放地址的变量,内存中一个内存单元对应一个地址

2017-04-15 12:02:19 2965

空空如也

空空如也

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

TA关注的人

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