自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++】—— 异常

一、C语言传统处理错误的方式传统错误的处理机制终止程序,如assert,缺陷:用户难以接受,如果发生内存错误,除0就会终止程序。返回错误码,缺陷:需要程序员对应错误码去寻找对应的错误。如系统很多库的接口函数就是通过错误码放到errno中,表示错误。C标准库中的setjmp和longjmp组合。二、C++异常的概念异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出...

2019-03-31 17:22:20 205

原创 80x86的寻址方式及Dosbox演示

在进入介绍之前首先给大家说一下简单介绍一下DOSBox及DOSBox的使用DOSBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的移植到其他的平台。目前,DOSBox 已经支持在 Windows、Linux、Mac OS X、BeOS 、palmOS、Android 、webOS、os/2等系统中运行。如需要DOSBox,可到一下链接获取链接:https://pa...

2019-03-29 23:21:30 2511 1

原创 【Linux】—— os概念,定位

使计算机更好用!这是操作系统的根本定义学习Linux需要记住的4句话1、操作系统是软硬件资源管理的软件2、管理者是根据被管理者数据进行管理相关决策的3、一般而言,管理者和被管理者之间不直接沟通,所以管理者(操作系统)与被管理者(软硬件)之间必须有一个执行者(设备驱动)的角色4、操作系统对下要管理好软硬件,对上要为用户提供良好的执行环境...

2019-03-28 17:09:35 398

原创 【牛客网】—— 抽象类和接口的区别

我们在这先看一道牛客网上的题目我们先分析一下这道题A:所谓的抽象类是指包含纯虚函数的抽象类,和普通的抽象类含不一样。而实现接口的类中的接口方法却默认为非虚的。纯虚函数可参见博客 https://blog.csdn.net/chenxiyuehh/article/details/88775057B:一个类可以直接继承多个接口,但只能直接继承一个类(包括抽象类),所以B是正确的。C:我们...

2019-03-28 16:47:19 547

原创 GitHup使用指南——安装及上传

我想对于程序员来说githup想是不会陌生的,虽然现在的我只是一个菜鸟,但是也用上了githup,因为它管理代码的能力真的很好,今天就来说说怎么安装githup和怎么将本地的项目代码上传到自己的githup上吧!githup的安装安装 git for windows这个是一个git的windows系统的命令行版本https://git-scm.com/downloads或者https:...

2019-03-27 15:37:57 4411

原创 【C++】—— 继承与多态常见面试题

一、实现一个不能被继承的类实现一个不能被继承的类有两种方法,下面我们一一来解释:1、在C++98中我们可以将基类构造函数私有化,派生类调不到基类的构造函数,则无法继承。#include <iostream>using namespace std;class Person{public: static Person GetPerson() { return P...

2019-03-26 19:19:25 1113

原创 C/C++的数据类型范围

转载博客 https://www.cnblogs.com/bingcaihuang/archive/2011/07/14/2105959.html速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 6553...

2019-03-25 20:02:04 6732 1

原创 【C++】—— 多态(下)之多态的实现原理

一、多态的实现原理1.1 虚函数表这里我们先来看一道经常会遇到的面试和笔试题class Base{public: virtual void Func1() { cout << "Func1()" << endl; }private: int _b = 1;};int main(){ printf("%d\n", sizeof(Base));...

2019-03-25 18:44:20 244

原创 【C++】—— 多态(上)

一、多态的概念1.1 概念通俗的来说,多态就是多种形态,具体一点就是,去完成某个行为时,不同的对象去完成会有不同的状态。我们来举个栗子,比如说我们平时买票这个行为,普通人买票就是全价票,学生就是半价票,军人可以优先买票,这就相同的一个行为,不同的人去完成有不同的效果。二、多态的定义和实现2.1 多态的构成条件1.调用函数的对象必须是指针或者引用2.被调用的函数必须是虚函数,且完...

2019-03-24 11:43:12 217

原创 【C++】—— 菱形继承和菱形虚拟继承

C++中的几类继承方式举个栗子看看菱形继承class Person{public: string _name; // 姓名};class Student : public Person{protected: int _num; //学号};class Teacher : public Person{protected: int _id; // 职工编号};cla...

2019-03-23 20:31:14 344

原创 【C++】—— C++中的继承(下)

上篇博客C++中的继承(上)我们讲到了继承关系函数重载与函数重定义等概念,接下来我们继续介绍继承与派生:继承与派生派生类中的默认成员函数派生类的构造函数必须调基类的构造函数初始化基类那一部分的成员。若基类没有默认的构造函数,则必须在派生类构造函数的初始化列表阶段显示调用。 派生类的拷贝构造函数必须调基类的拷贝构造函数完成基类部分成员的拷贝构造。 派生类的operat...

2019-03-23 17:34:16 152

原创 【C++】—— C++中的继承(上)

继承与派生继承关系和访问限定符三种访问限定符:public protected private三种继承关系:public protected private继承基类成员访问关系的变化总结基类(父类)private成员在派生类中无论以什么方式继承在派生类(子类)都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是...

2019-03-22 18:44:21 232

原创 【C语言】—— 《C和指针》学习笔记3

操作符算数操作符+ , - , * , / , %注:除%之外,其余操作符既适用于浮点类型也适用于整形。位操作符& , | , ^ (AND,OR,XOR)位的操纵将指定的二进制位设置为1value = value | 1 << bit_number; value |= 1 << bit_number;将制定的二进制位清01 ,即求补...

2019-03-22 16:28:55 142

原创 【C语言】—— 《C和指针》学习笔记2

作用域代码作用域:任何在代码块的开始位置声明的标识符都具有代码作用域。文件作用域:任何在所有代码块之外声明的标识符均有文件作用域,该标识符从声明之处到所在源文件的结尾处均可被访问。原型作用域:只适用于在函数原型中声明的参数名。函数作用域:此类作用域很少被使用,希望大家最好不要使用该类作用域,它只适用于语句标签,语句标签用于goto语句。下面我们看段代码具体来了解一下几个常用到的作用域...

2019-03-21 17:12:42 147

原创 【C语言】—— 《C和指针》学习笔记1

由于自己C语言基础不是很扎实,最近在学习 ==《C与指针》==所以最近可能会定期记录一下自己的学习心得和笔记。编译过程的几个阶段1、预处理器阶段主要工作是用实际值代替==#define指令定义的符号,读入#include==包含的文件内容,处理条件编译,以及去掉注释等。在Linux/Unix下源文件被处理为:main.i sort.i2、编译阶段主要工作是检查程序中存在的语...

2019-03-20 18:48:26 309 1

原创 【C++】—— 容器适配器

一、 什么是容器适配器1、什么是适配器适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该中模式是将一个类的接口转换成客户希望的另外一个接口。我们要明白适配器是干什么的?其实就是一个接口转换装置,是得我们能用特定的方法去操作一些我们本来无法操作的东西。举一个例子,比如你的一个设备支持串口线,而你的电脑支持的是usb口,这时候,我们没有必...

2019-03-19 15:40:02 298

原创 【C++】—— 优先级队列(priority_queue)

一、优先级队列1、 优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。2、 此上下文类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)。3、 优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从特定容器的“尾部”弹出,其称为优先队列的顶部。4、...

2019-03-18 17:04:06 1075

原创 【LeetCode】—— 在LeetCode下怎样确定bug的位置

这里先来看看我最近写的一个题设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点...

2019-03-17 19:04:17 391

原创 【C++】—— 模拟实现List

头文件List.h#include &lt;iostream&gt;#include &lt;algorithm&gt;//算法头文件using namespace std;namespace CXY{ template&lt;class T&gt; struct _ListNode //封装一个节点 { _ListNode&lt;T&gt;* _prev; _ListN...

2019-03-17 17:30:46 258

原创 【Linux】—— Linux基础命令

Linux基础命令一、目录操作命令:1 、ls 浏览目录命令目录–文件夹, 列出目录下的文件信息-a 命令:浏览所有文件,不忽略以.开头的文件 ,查看隐藏文件linux下以 . 开头的文件默认是隐藏文件一个点表示当前路径两个点表示当前路径的上一层路径-l 命令: 查看目录下文件的详细信息,文件类型:- 为普通文件 d为目录文件2、pwd 查看当前所在路径绝...

2019-03-11 20:30:16 1063

原创 【LeetCode】—— C++实现二叉树的遍历(非递归)

一、二叉树的前序遍历LeetCode144题题目描述及解析可参考博客https://blog.csdn.net/chenxiyuehh/article/details/86931798基本思路均相同,只是实现语言不同,C++比C语言实现要简单的多,毕竟可以直接使用vector和stack,不用像C语言一样还得自己实现一个栈,也可以将遍历序列直接存入vector中,而不用像C语言一样要遍历两遍二...

2019-03-10 15:25:55 430

原创 【LeetCode】—— vector相关OJ题(下)

一、电话号码的字母组合1.1 题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf&q

2019-03-08 18:31:48 308

原创 【C++】—— 模拟实现vector(源代码)

一、vector的介绍1、vector是表示可变大小数组的序列容器。2、就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。3、本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做...

2019-03-07 17:40:29 4247 2

原创 模拟实现与字符串相关的函数(较全)

一、字符串拷贝函数strcpy//模拟实现strcpy,会将\0一起拷贝char* my_strcpy(char* dest,char* str){ char* start = dest; while (*str != '\0') { *dest++ = *str++; } *dest = *str; return start;}int main(){ char ...

2019-03-06 22:20:56 184

原创 【C语言】—— 柔性数组

一、柔性数组的定义1、柔性数组的定义在c99中提到,在一个结构体中,结构体的最后一个元素可以是一个未知大小的数组,这个就叫做柔性数组成员。2、柔性数组表示 #include&amp;lt;stdio.h&amp;gt; struct S { int a; char arr[];//柔性数组 } //有些编译器支持这样书写柔性...

2019-03-05 18:55:32 4328 4

原创 【LeetCode】—— vector相关OJ题(上)

一、只出现一次的数LeetCode136题1.1 题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 41.2 解题思路该题实现很简单,只用让相邻的两个数...

2019-03-04 19:37:06 289

原创 【牛客网】—— 枚举(enum)所占内存大小

这里我们先来看一道题这是牛客网上的一个题,我在计算这个类的大小时,对于enum枚举类型所占空间的大小有了一些困惑,通过查阅资料我了解到其实在C++标准文档中是这样说明的:“枚举类型的尺寸是以能够容纳最大枚举子的值的整数的尺寸”,同时标准中也说名了:“枚举类型中的枚举子的值必须要能够用一个int类型表述”,也就是说,枚举类型的尺寸不能够超过int类型的尺寸,但是是不是必须和int类型具有相同的尺...

2019-03-02 17:48:54 10716 7

原创 不使用库函数实现字符串与数字相互转换

一、数字转换为字符串1.1 解题思路不使用库函数实现数字转换为字符串,此时必须借助ASCII码进行转换,我们知道字符‘0’与数字0直接ASCII码值相差48,要将对应数字转换为字符,只需加上字符‘0’即可,但是此时我们是要将一串数字转换为一个字符串,此时我们就需要借助一个数组来储存转换好的对应数组,之后输出即可。注:因为在转换数字时是从最低位开始转换的,因此存入数组中的字符顺序是颠倒的,因此...

2019-03-01 21:54:25 4567 1

空空如也

空空如也

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

TA关注的人

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