自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++11多线程编程Part.2

std::thread Value&Value.joinable()总是成对出现使用Lmabda表达式(匿名函数)来为工作线程传入参数多线程的同步问题初探

2019-11-24 17:29:36 223

原创 undered_map Part.1

//unordered_map//unordered_map/multimap//C++11's new Container(vector),It previous from boost librarytemplate<typename Type>class Key_Position{public: Key_Position(Type _X, Type _Y) :x(...

2019-11-23 12:10:29 248

原创 C++11多线程服务器编程Part.1

在之前的学习过程中,关于多线程服务器编程的学习内容主要在Linux上的C语言实现,例如pthread_create,等函数,如今C++11也有很多支持多线程的函数和方法(当然环境选择Linux或者Windows都是可以的),并且更加高效和灵活,学无止境,从这次开始,进入到C++11多线程服务器编程开发的学习中。C++11提供的的多线程编程接口高级接口:future,async低级接口:thr...

2019-11-14 11:16:53 225

原创 HTTP1.0和HTTP1.1的区别和联系

长链接&短链接新增加请求方式

2019-09-01 13:16:32 309

原创 HTTP的请求方法&应答状态码

请求方法和应答状态码的地位请求方法是HTTP连接过程中,Web浏览器对于请求方式的一种描述,具体可以使用那些请求方法和HTTP协议的版本有关。应答状态码是Web服务器在接收到浏览器的相关请求后给出的回复的“代号”,浏览器通过代号可以快速理解服务器对于请求的态度。总的来说,请求方法和应答状态码都是双方都知晓的规定,通过这些规定,就能快速理解双方的诉求。请求方法请求方法主要有以下九种,其中G...

2019-08-31 23:28:37 460

原创 HTTP连接初探

什么是HTTP协议HTTP协议是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务。HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间的连接不是长久的连接,这说明浏览器向服务器发送一个请求后,服务器给予回应后便会立刻关闭,这个连接随之断开,在服务器端不保留连接的有关信息,可以理解发一次...

2019-08-31 22:39:59 198

原创 智能指针的代码实现——shared_ptr

shared_ptr的适用场合我们知道auto_ptr和unique_ptr的所有权唯一,释放权也唯一,但是shared_ptr是所有权不唯一,释放权是最后一个引用该资源的指针拥有,可以说所有权&释放权不唯一。同时...

2019-08-31 13:38:23 423

原创 协程的初步学习

概述shared和weak一般都是组合使用的,特别是weak_ptr只有在shared_ptr存在的情况下才能发挥最核心的作用。shared:所有权共享智能指针,比起unique/auto的所有权唯一智能指针...

2019-08-30 10:50:02 196

原创 智能指针的再巩固——unique_ptr

概述C++11中的新引进的智能指针做到了手动申请资源,由系统释放资源的垃圾回收机制,

2019-08-25 15:33:40 423 1

原创 单例模式的饿汉模式&懒汉模式

单例模式的设计思想1.单例模式是用类只能生成一个对象2.将对象的构造和拷贝构造函数都放在私有保护下,类提供唯一的接口生成唯一对象3.static不依赖对象调用不能返回本类类型快慢加载,延迟实现,双重锁机制的单例模式延迟加载(展开说明)静态“类”的设计思想在程序生成时,就存在于程序中,如果自始至终没有使用到,那么相当于资源浪费...

2019-08-25 11:22:07 162

原创 接口,纯虚函数和虚函数的区别以及适用场合

定义在说明定义之前,我们需要了解,无论是C++还是Java他们都是面向对象的编程语言,接口:从定义来说,这是Java的一个名词,对外提供可以访问的函数就叫接口,接口不能有实现,只能声明。虚函数&纯虚函数:虚函数的作用是实现多态性(Polymorphism),多态性是将接口与实现进行分离,采用共同的方法,但因个体差异而采用不同的策略。纯虚函数则是一种特殊的虚函数。纯虚函数在基类中,定义...

2019-08-24 16:02:37 2283

原创 git学习小结

git和github的区别git是分布式管理代码的工具,github则是全球最大的开源社区,支持代码托管,两者没有太大的关系,但是我们要向github提交代码应该需要使用到git工具。这里git安装过程忽略,直接进入主题Git bash下git的几条基本命令一、首先设置用户名和邮箱作为标识设置命令:git config –global 参数注册用户名为 user.name + “na...

2019-08-17 14:38:56 126

原创 计算机网络(2)——TCP/UDP的编程流程

本次将计算机网络概述中所提到的知识点一一展开,作为个人学习记录和复习参考。TCP编程流程TCP特点:面向对象的,可靠的字节流服务。明确我们TCP网络编程的上层协议如HTTP,FTP分别是浏览器方式和FTP传输文件的形式,这些都是具体的业务形式,目前不做考虑。下层协议使用的就是TCP&IP&ARP/RARP。TCP协议是基于C/S架构,故我们分为:服务器端:socket ...

2019-08-01 11:00:49 255

原创 计算机网络基础知识(1)——概述

在网络中表示一个进程: IP地址+端口号协议:约定,规定,是数据传输的控制方式TCP/IP协议框架应用层//HTTP,FTP,Telent,DNS,Email,Ping//给用户提供服务 传输层//TCP,UDP//端到端的通讯服务,传输的数据服务,主要控制数据的稳定传输网络层//IP协议//A–>B主机数据传输控制,主要控制传输过程,IP选址。数据链路层//ARP,RARP//...

2019-08-01 08:40:46 157

原创 浅谈计算机的内存管理(1)

一、介绍内存管理个人认为,内存管理分为内存管理和虚拟内存管理。物理内存管理有内存的交换与覆盖、内存的连续分配管理方式和非连续分配管理方式,其中连续分配又分为动态分配和静态分配,非连续分配管理方式分为:分页式、分段式、段页式,这儿在之后都会讲到、虚拟内存管理有请求分页管理方式、页面置换算法、页面分配策略、工作集和抖动。当物理内存管理和虚拟内存管理相结合时才能称得上是真正的内存管理,接下来我们...

2019-07-23 00:09:42 398

原创 KMP算法探讨

KMP是关于字符串匹配的问题,具体描述是在一个主串中寻找有没有sub(子)串,要求时间复杂度尽可能的低对于字符串匹配我们有最暴力的解法——朴素解法,朴素解法的思想是两个指针,一个指向主串每次操作的位置,另一个指向sub串的操作位置,进行逐个匹配操作,每次匹配失败主串下标只挪动一位,sub串下标指针则会置为0,这种操作很费时费力,时间复杂度达到了主串sub串,假设主串长n,子串长m,则朴素查找的时...

2019-05-21 23:35:09 160

原创 MySQL的三种SQL语言操作命令浅析

DDLDDL:数据定义语言——定义结构,操作结构 使用到的语句是 create增 drop删 alter改 show查 DDL create drop alter show 1.库 1.创建库 create database [if not exists] dbname; eg:create database [if not exists] CY1269; ...

2019-05-19 23:42:37 281

原创 关联容器&观察者模式

STL中的关联容器

2019-05-02 17:43:08 183

原创 STL—Iterator的分类和copy的重载及其使用

Iterator是什么简单的来说,iterator是C++中容器的访问接口,不需要关心容器内如何实现的,这和容器适配器很相似,容器适配器给出相应的接口可以使得Stack用Vector进行底层实现...

2019-04-29 01:20:16 695 1

原创 泛式算法,仿函数和迭代器失效问题

泛式算法的含义简单的来说就是引出函数对象,让一个类的对象去做函数做的事情,此时泛式算法的函数中提供一个需要操作的序列的两个迭代器入口和一个实际进行操作的类对象,对于序列的实际操作是由类对象和函数体实现的,先引入一个简单的例子:使用泛式算法实现函数对象template <typename T>//泛式算法的排序对象体现class _Cmd3{ bool operator()(...

2019-04-28 00:45:16 211

原创 gdb调试命令及其含义

gdb是Linux下非常实用的程序调试插件,因为Linux默认在gcc生成a.out时生成的是Release版本,在ELF段中不存在Debug相关段,所以需要在编译时在命令最后加上 -g 标识,标识生成Debug版本,也因为Debug是在ELF段中插入Debug段落,所以我们可以确定Debug版本是在编译阶段就将相关调试插件放入程序中,而不是在链接这么晚的时候放入的。GDB的相关命令GDB使用...

2019-04-25 22:37:58 1754

原创 epoll的LT&ET模式

epoll的LT模式

2019-04-25 22:36:41 245

原创 Linux下的MakeFile文件

MakeFile是什么Makefile是Linux下的文件管理工具,本质是文件,加载运行需要make命令,make命令可以认为是执行shell脚本文件我们创建一个Makefile文件,注意,在Linux中,M首字母大小写不区分——调用vim makefilemakefile内容是main的gcc的过程,要分步骤写,和shell脚本文件把文件编译过程记录下来,会根据最后修改的文件来智能决定需要...

2019-04-25 16:07:49 594

原创 Linux的三种I/O复用方式——epoll

I/O复用函数selectpollepoll<Linux的独有的I/O复用>接下来我们最后一个I/O复用,也是Linux独有的I/O复用并对三种I/O复用进行简单的分析epollepoll不再是一个函数,而是一组函数,分别是:int epoll_create(int seize);//创建内核事件表,不用用户维护,由内核维护int epoll_ctl(int epfd,...

2019-04-24 16:55:25 362

原创 Linux的三种I/O复用方式——poll

I/O复用函数selectpollepoll<Linux的独有的I/O复用>接下来我们分三次进行介绍I/O复用pollpoll的原型是int poll (struct pollfd *fds,int nfds,int timeout);比起select更加简洁了一些,事件不再由内核在线修改,而是存入系统提供的结构体中,将文件描述符和从内核拷贝而来的改变数据划分开,不需...

2019-04-24 16:16:28 546

原创 Linux的三种I/O复用方式——select

I/O复用函数selectpollepoll<Linux的独有的I/O复用>接下来我们逐一进行介绍//这里插入I/O复用的功能selectselect的原型是int select(int maxfd,fd_set *readfds,fd_set,fd_set *writefds,fd_set *exceptfds,struct timeval *timeout);ma...

2019-04-24 15:48:23 495

原创 Python内置的GUI——Tkinter(1)

Python作为近些年来最为受欢迎的脚本语言之一,他的相关拓展应用也是遍地开花,最近在学习Python内置的GUI(图形开发界面的库)——Tkinter,在这里写下学习笔记作为记录和备份,如有错误,也希望各位能够点出指正。实现简单的图形界面import tkinter as tkon_hit = False#标记,这是一个全局变量#window = tk.Tk()#生成GUI框架#var...

2019-04-23 17:09:29 965

原创 C语言联合体浅析

union就和以前理解的一样,多个变量共用一块内存区域,初始默认占有的内存空间是所有类型中,字节数最大的那一个。如果同时给union所有变量赋值呢?最后赋值的会覆盖前值举例:union{ char a; int b;}B;union B bb;bb.a = ‘x’;bb.b = 0x12345664;输出的结果是 ab的结果是 b ,0x12345664;使用union判...

2019-04-23 00:51:16 466

原创 STL四种智能指针浅析

我们知道,在C++中没有像Java那样的自动回收垃圾机制,,系统只会清理栈上由系统管理的资源,在类中若有对堆资源的申请,不进行手动释放资源就会导致内存泄漏问题,在学习了类和类模板之后,我们发现在类中有析构函数来进行资源释放功能,并且析构函数还支持加入程序员自身的操作,那么将指针托管给对象来实现可以做到程序员手动申请资源,让系统自动回收资源的效果,Boost库就提供了这样的智能指针来实现C++的自动...

2019-04-23 00:39:45 1178

原创 函数指针和指针函数

C/C++中老生常谈的话题之一何为函数指针和指针函数他们的区别指针数组和数组指针指针函数和函数指针数组指针和函数指针的例子何为函数指针和指针函数上例子:int *Sum(int a,int b){ return &(a+b)}int (*p)(int,int);p = Sum;此时,称Sum是返回值是指针型的函数,即指针函数,p是指向函数的指针,也就是我们说的函数指针;...

2019-04-22 23:00:50 135

原创 const_static修饰类成员和.*操作符

const和static前缀在C++中的用法和很多,在许多公司面试时也是重要的考点,合理的使用const和static关键字会使程序更加健壮,也可以让程序的实用性大大提高,下来我们逐个进行分析。const在修饰类成员时的作用为此,我们写一个测试用例,在这段代码中声明一个类,给与一个带两个参数的构造函数和一个const修饰的成员方法,两个成员变量,其中mb是被const修饰的成员变量。clas...

2019-03-16 01:14:35 223

原创 八皇后问题

本文为大一时所写的文章(2017/5/11),文笔还很生疏,在很多问题上认识不深,算是在学校的微信公众号上的一个编程探究模块上的投稿,本人当时也参与了本模块的维护和管理。补档。Eight Queen 问题八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,皇后本可以在横、竖、斜线上不限步数地吃掉其他...

2019-03-15 16:46:16 248

原创 阿拉伯数字转化为大写汉字

本文为大一时所写的文章(2017/5/3),文笔还很生疏,在很多问题上认识不深,算是在学校的微信公众号上的一个编程探究模块上的投稿,本人当时也参与了本模块的维护和管理。补档。首先向大家说一声抱歉,上次因为一些个人原因没有按时更新编程讨论角,下次有什么特殊情况我一定会提前和大家说明原因!本次的主角是“阿拉伯数字转化为大写汉字”这个算法和代码,在这之前,我们来看看很经典的变量——静态变量(stat...

2019-03-15 16:44:15 1715

原创 C语言小程序分享

上个周末的一个下午,想着随便做点什么好呢,于是整出了这么一段程序,拿出来和大家分享分享。本程序实现的是类似一个审问模式,功能有查看输入过的答案,将最后的问题和结果保存在本地磁盘。当然这只是一个简单的β版,日后可能会完善(也有可能不会)。程序使用了文件相关操作和结构体的使用,只是一个大框架,可以往里面添的东西很多。本程序中一些新奇的玩意的说明:一、print.h为何物?本程序使用了一个...

2019-03-15 16:35:10 3017

原创 C语言的文件浅析和二级指针

本文为大一时所写的文章(2017/4/19),文笔还很生疏,在很多问题上认识不深,算是在学校的微信公众号上的一个编程探究模块上的投稿,本人当时也参与了本模块的维护和管理。补档。今天我们讨论下C语言的文件相关。一、何为文件文件,是存储在外部介质的数据的集合。操作系统是以文件为单位进行管理,希望调用外存文件里的内容就得先去从外部存储中找到文件名输入到缓冲区,从缓冲区再调入到内存中,输出则是个逆过...

2019-03-15 16:13:25 320

原创 C++类的生存周期

众所周知,类是C++的核心,而对于类的生存周期的长短是受到很多因素影响,在这里我从以下几个方面来分析:类在.data段生成时的生存周期类在栈区生成时的生存周期类在堆区生成时的生存周期为了体现各种情况下类的生存周期,我们写一个测试用例来直观地感受。class CGoods//实现三种构造方式 一个拷贝构造函数 一个赋值运算符重载{public: CGoods(char* name...

2019-03-15 00:55:53 3113

原创 C语言指针的分析

指针是C语言的灵魂,是C语言嵌入式开发的基础,指针通过对地址的直接访问使C语言有了很强的可移植性,C语言才能在日新月异的计算机语言的更迭中,确立很高的地位。在第一期里我们讨论过二维函数的动态分配,其中方法二就是使用了指针的方法(指针的指针)用指针实现可以显著减少内存的浪费,让程序运行更加健壮(原话),为什么能显著减少内存的浪费呢,这一期,我们就来聊聊这个问题及其相关知识。为什么要叫做指针呢?...

2019-03-14 19:08:53 345

原创 C语言结构体的浅显探讨和学习笔记

D.M.Ritchie说:计算机需要光明,于是他创造了C语言,D.M.Ritchie说:计算机需要空气,于是C语言有了函数,D.M.Ritchie说:计算机需要水,于是C语言有了结构体,D.M.Ritchie说:计算机需要思考,于是C语言有了算法,......D.M.Ritchie说:计算机需要灵魂,于是C语言有了指针。

2019-03-14 18:32:54 303

原创 二维数组及其二维数组的动态内存分配

本文为大一时所写的文章(2017/4/9),文笔还很生疏,在很多问题上认识不深,算是在学校的微信公众号上的一个编程探究模块上的投稿,本人当时也参与了本模块的维护和管理。补档。今天我们来聊聊二维数组及其二维数组的动态内存分配关知识。1.数组的基本定义我们都知道,数组是典型的线性存储,是一种最基本的存储表示方法,把逻辑上相邻的元素存储在物理位置相邻的存储单元中,由此得到的存储表示称为线性存储结...

2019-03-14 18:01:08 6645 2

空空如也

空空如也

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

TA关注的人

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