自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux高级IO

在说五种高级IO模型之前,不得不先说一下IO,任何的IO过程都包括两种,等待和数据拷贝。一般来说,等待的时候远大于数据拷贝的时间,所以想要优化一个程序的性能,就得从它的的等待入手,所以我们就得了解各种IO的原理以及使用。五种IO模型:- 同步IO (synchronous IO)1.阻塞IO在发起调用,如果没有完成则一直等待。这个模型的流程非常简单,但是一个IO的结束才能执行下一个IO,对资源的利用率很低。2.非阻塞IO发起调用,如果当前不具备IO条件,则立即返回,每隔一段时间,都会进行轮询遍历

2020-07-12 21:31:13 181

原创 二叉搜索书、平衡二叉搜索树、红黑树的思维导图

这篇博客是用思维导图,对三个数进行简单的概括,然后将它们的联系以及时间复杂度进行了简单的介绍。

2020-07-12 15:29:28 165

原创 const char * 、char const *、 char * const 三者的区别

C++ prime plus第六版中,是这样来描述的。我们可以用两种不用的方式将const关键字用于指针,第一种是让指针指向一个常量对象,这样可以防止指针来修改所指向的位置,第二种方法是将指针本身声明为常量,这样可以防止改变指针指向的位置。首先来看第一种const char* ptr,首先ptr是一个char*类型的指针,但是又被const关键字修饰,所以*ptr是不可修改的。第二种char const* ptr,它的报错在vs下与第一种一致,所以从vs编译器的角度来看,用起来应该没有什么区

2020-05-12 16:30:19 270

原创 sizeof和strlen的区别

首先从底层代码的实现来看一下sizeof和strlensizeof#define my_sizeof(L_Value) ( / (char *)(&L_Value + 1) - (char *)&L_Value /)strlenint my_strlen(const char *str){ int i = 0; while((*str++) != '\0') { i++; } retu

2020-05-11 19:10:51 216

原创 C++三大特性之多态

这篇博客我会涉及到多态的概念、多态的定义以及实现、抽象类、虚函数表以及多态的原理多态的概念简单来说就是不同继承关系的类,去调用同一函数,产生不同的行为通俗点来说,就是三好学生类和差生类,都去完成找老师请假的这个行为函数,虽然都是请假这个函数,但是三好学生类可以请假,差生类就要挨打。多态的定义以及实现多态构成的条件必须由基类的指针或者引用去调用虚函数被调用的必须是虚函数,而且派生类必...

2020-04-15 14:42:40 265

原创 C++三大特性之继承

这篇博客我会涉及到继承的概念以及定义、派生类和基类的赋值问题、继承中的作用域、派生类的默认成员函数以及难点菱形继承问题继承的概念1继承的概念继承是面向对象编程语言中的重要机制,它可以使用现有类的所有功能,并在无需编写的情况下对这些功能进行扩展,提高了代码的复用性。2继承的定义通过一个简单的代码图,来介绍一下继承的格式而继承方式和访问限定符也分别有三种,如图:![在这里插入图片描述]...

2020-04-12 00:15:09 188

原创 【牛客】扑克牌大小

添加链接描述

2019-12-11 19:58:28 885

原创 【牛客】三角形----给定三条边,请你判断一下能不能组成一个三角形

给定三条边,请你判断一下能不能组成一个三角形判断三条边是否为三角形就是,两边之和大于第三边,两边之差小于第三边。输入描述:输入包含多组数据,每组数据包含三个正整数a、b、c(1≤a, b, c≤10^100)。输出描述:对应每一组数据,如果它们能组成一个三角形,则输出“Yes”;否则,输出“No”。其实第一眼看到这个题,我就想起了数根那道编程题,因为输入范围超出,所以将输入的类...

2019-12-07 12:57:40 2525 1

原创 Linux中匿名管道和命名管道

进程间通信—IPC因为进程之间的独立性,无法直接沟通,所以操作系统提供了公共的媒介,使多个进程之间可以共享同样的资源,这种机制就是进程间通信。不同的场景,就会有不同的方式,本篇博客会详解通信方式中的管道。管道管道的其实就是内核中的一块缓存区,多个内存通过访问同一块缓冲区,实现进程间通信。管道的种类有两种,一种是匿名管道,一种是命名管道。匿名管道本质:就是一个文件,...

2019-11-30 22:47:21 488

原创 C++深浅拷贝问题详解

    相信很多人都自己去实现过string类的构造,拷贝构造,析构函数以及对字符串的各种操作运算符的重载。但是在自己实现这些函数的时候,有的人可能会踩到这个深浅拷贝的雷,所以我在这篇博客写出我自己对这块的理解首先看一段代码,这是我自己定义个一个类,里面有构造函数和析构函数,对于拷贝构造函数,我会先屏蔽掉自己所写的调试一次,然后用我自己写的拷贝构造调试一次,将两次调试的结果进行对比不要...

2019-11-24 23:26:53 590

原创 C++Date日期类的实现

Date日期类应该是好多学c++类或者开始学c++时,第一份比较重要的代码吧,当时刚接触c++,的确一开始学的有些不易,在自己敲date日期类这个代码的时候有一些不懂得地方也自己琢磨了一些时间。所以,我把自己的代码贴出来,尽量做到详细解读,希望对看到的人有些帮助,也同时对我自己是个回顾吧。先提前说一下,我这次的代码只有一个.h和一个.cpp。我只在.cpp中调用.h中的测试函数,所以我的.h...

2019-11-04 21:21:51 510

原创 语句小结

学习了c语言的语言,然后还接触过其他语言就会发现,其实c实现了其他现代高级语言所具备的几乎所有语句,所以自己写一篇关于语句的小结,不足的地方请指正和补充这里列出几个自己经常遇到的语言空语句c语言最简单的就是空语句,只包含一个分号,不执行任何任务,但是有时也会用到它,比如下边会提到的for循环中,for(;i<10;i++)有时i在前边代码定义过之后,就不需要在for中再次定义,所以直...

2019-10-12 20:21:37 192

原创 char *c[], **cp[],char ***cpp详解

最近学习指针这块遇到了一个自己感觉比较头疼的代码,话不多说先附上代码#include "stdio.h"#include "stdlib.h"int main(){char *c[] = { "ENTER", "NEW", "POINT", "FIRST" };char **cp[] = { c + 3, c + 2, c + 1, c };char ***cpp = cp;pr...

2019-05-23 19:32:33 1655

空空如也

空空如也

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

TA关注的人

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