自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 今天1024让我水个勋章

参加秋招聘C++岗结果到公司了让我学神经网路哭了,佛系公司还没有带我???一点算法基础都没有的我GG

2019-10-24 10:26:51 136 1

原创 Qt的介绍与部分控件的使用

一、Qt简介1、Qt是什么 图形用户程序框架,是对底层应用编程接口API面向对象的封装。是一套基于C++语言的类库,专注但不局限于图形用户界面的开发,也可以进行系统调用、网络编程、数据库、2D/3D图形处理。特点:跨平台,支持Linux,windows、MacOS、iOS、Android等操作系统。2、为什么选择Qt 基于C++语言,简单、易用、面向对象(针对GTK) 优良的...

2019-09-06 14:21:04 385

原创 模板与STL

一、为什么使用模板1、C/C++是一种静态类型语言(预处理->汇编->编译->链接),好处是速度快,缺点实现通用代码麻烦,例如:实现支持所有类型的快速排序。2、借助函数重载实现通用代码,好处是实现简单,但代码段会增加。3、借助宏函数实现通用代码,类型检查不严格。4、借助回调函数实现通用代码,使用麻烦。5、由于以上原因C++之父在C++实现了模板技术,让C++能够支持泛型...

2019-09-02 10:10:23 520

原创 静态成员与非静态成员的区别

一、静态成员的特点:(1)static数据成员在类的内部声明,但只能在类的外部定义,在类的外部不能指定static,在类的定义时候进行初始化;(2)static数据成员只能在类的外部进行初始化(特例:当整型const static数据成员被常量表达式初始化时,就可以在类的内部进行初始化,但还需要在外部进行定义)。(3) static数据成员可以是该成员所属的类类型,而非static数据成员只...

2019-08-24 10:08:54 8054 3

原创 饿汉模式与懒汉模式

饿汉模式将单例类的唯一实例对象定义为成员变量,当程序开始运行,实例对象就已经创建完成。优点:加载进行时静态创建单例对象,线程安全。缺点:无论使用与否,总要创建,浪费内存。#include <iostream>using namespace std;class Singleton{private: Singleton(void) { } static Sin...

2019-08-23 20:49:57 104

原创 C++3种继承方式与访问权限

父类成员在不同作用域的访问权限三种继承方式的子类对象属于外部访问子类对象.成员继承的访问控制不可直接访问指在子类中无法直接访问继承过来的父类成员...

2019-08-23 20:42:51 197

原创 标准C++学习day04

一、子类的构造、析构、拷贝1、子类的构造在执行它的构造函数前会根据继承表的顺序执行父类的构造函数。 默认执行父类的无参构造。显式调用有参构造,在子的构造函数后,初始化列表中显式调用父类的有参构造函数。2、子类在它的析构执行完后,会根据继承表的顺序逆顺序执行父类的析构函数。注意:父类的指针可以指向子类对象,当通过父类指针释放对象时,只会调用父类的析构函数,而这种析构方式有可能造成...

2019-08-23 20:38:58 99

原创 运算符的重载

一、操作符函数重载什么是操作符函数:在C++中针对类类型的对象的运算符,由于它们肯定不支持真正的运算操作,因此编译器会将它们翻译成函数,这种就叫作操作符函数(运算符函数)。编译器把运算翻译成运算符函数,可以针对自定义的类类型设计它独有的运算功能。其实各种运算已经具备一些功能,再次实现它的就是叫作运算符重载。双目运算符: a+b 成员函数 a.operator+(b); 全局函数...

2019-08-23 20:30:15 86

原创 标准C++语言day03

一、this指针类的成员变量单独存储在每个类对象中,成员函数存储在代码段中,所有的类对象共享一份成员函数。成员函数是如何区别调用它的是那个类对象的?答:借助了this指针,类的每个成员函数都有一个隐藏的参数this指针,它指向类对象。类的构造函数中也同样有this指针,指向的就是正在构造的这个对象。在类中(成员、构造、析构函数)对成员变量、成员函数的访问都是借助了this指针。this...

2019-08-19 20:09:15 92

原创 分享一道牛客网有关内存的题

当参数*x=1, *y=1, *z=1时,下列不可能是函数add的返回值的(7 )? int add(int *x, int *y, int *z) { *x += *x; *y += *x; *z += *y; return *z; }这里我给出了验证代码:#include "StdAfx.h"#inc...

2019-08-19 20:01:07 444

原创 标准C++语言day02

面向过程编程: 关注是问题解决的过程步骤(事情是如何解决的),算法。面向对象编程:关注的是谁能解决问题(类),需要什么样的数据(成员变量),具备什么样的技能(成员函数)才能解决问题。抽象:找出一个能够解决问题的"对象"(观察研究对象),找出解决所必须的数据(属性)、功能(成员函数)。封装:-把抽象的结构,归结为一个类(数据类型),然后实例化出类对象,设置对象的属性,...

2019-08-16 16:26:25 103

原创 标准C++语言day01

一、C++介绍本贾尼·斯特劳斯特卢普,于1979年4月份贝尔实验室的本贾尼博士在分析UNIX系统分布内核流量分析时,希望有一种有效的更加模块化的工具。1979年10完成了预处理器Cpre,为C增加了类机制,也就是面向对象,1983年完成了C++的第一个版本,C with classes也就是C++。C++与C的不同点:1、C++完全兼容C的所有内容2、支持面向对象编程思想3、支持运算符...

2019-08-16 16:19:46 116

原创 网络字节序与本机字节序

在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(),ntohs(),htons()这4个函数。 网络字节顺序与本地字节顺序之间的转换函数:htonl()–“Host to Network Long”ntohl()–“Network to Host Long”htons()–“Host to Network Short”...

2019-08-13 11:53:58 304

原创 各层的网络协议

物理层:RJ45、CLOCK、IEEE802.3数据链路:PPP、FR、HDLC、VLAN、MAC网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP传输层:TCP、UDP、SPX会话层:NFS、SQL、NETBIOS、RPC表示层:JPEG、MPEG、ASII应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS...

2019-08-12 19:27:05 179

原创 线程:生产者与消费者问题

#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <pthread.h>#include <time.h>#define HOUSE_MAX 50// 栈结构char house[HOUSE_MAX] = {};// 栈顶下标int top...

2019-08-12 16:19:33 101

原创 线程的同步,竞争和互斥

一、同步、竞争、互斥当多个线程同时访问其共享的资源时,需要相互协调,以防止出现数据不一致、不完整的问题,能达到这种状态线程同步。而有些资源在同一时刻只有一个线程访问,对于这种资源的访问需要竞争。当资源获取到后,能够防止资源被其它线程再次获取的技术叫互斥。二、互斥量(锁)pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;int pthre...

2019-08-12 14:45:59 538

原创 Linux计算机与网络

一、计算机网络1、什么是计算机网络计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。2、计算机网络的功能 数据通信 资源共享 提高系统的可靠性 分布式网络处理和负载均衡3、计算机网络的组成 通信子网:网卡、线缆、集线器、中继器...

2019-08-07 09:49:06 312 1

转载 常见的页面调度算法

常见的页面调度算法(1)随机算法rand(Random Algorithm)。利用软件或硬件的随机数发生器来确定主存储器中被替换的页面。这种算法最简单,而且容易实现。但是,这种算法完全没用利用主存储器中页面调度情况的历史信息,也没有反映程序的局部性,所以命中率较低。(2)先进先出调度算法(FIFO)先进先出调度算法根据页面进入内存的时间先后选择淘汰页面,本算法实现时需要将页面按进入内存的时...

2019-08-06 13:28:00 1775

原创 死锁的条件

产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻...

2019-08-05 09:14:27 154

原创 全局变量、局部变量、静态全局变量、静态局部变量的区别

C++变量根据定义位置的不同,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域。从作用域看:全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包括全局变量定义的源文件需要用extern关键字再次声明这个全局变量。静态局部变量具有局部作用域。它只被初始化一次,自从第一次初始化直到程序与你新内阁结...

2019-08-02 17:23:53 164

原创 进程的概念与部分函数

一、基本概念1、进程与程序程序:存储在磁盘上的文件,包含可执行指令和数据的静态实体。进程:运行中的程序(一个程序可以执行多次,加载出多个进程)。进入就是处于活动状态的计算机程序。2、进程的分类:交互进程:有输入、输出,用户可以根据自己的情况输入数据,得到想要的结果(一般进程)。批处理进程:由脚本加载执行的程序(Linux下的shell,windows下的bat)。守护进程:总是活跃...

2019-08-02 17:03:28 436

原创 UNIX进程通信

unix:(1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。(2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。(3)信号(Signal):信号是比较...

2019-07-31 19:02:03 367

转载 内存管理

内存管理(Memory Management)是操作系统设计中最重要和最复杂的内容之一。虽然计算机硬件一直在飞速发展,内存容量也在不断增长,但是仍然不可能将所有用户进程和系统所需要的全部程序和数据放入主存中,所以操作系统必须将内存空间进行合理地划分和有效地动态分配。操作系统对内存的划分和动态分配,就是内存管理的概念。有效的内存管理在多道程序设计中非常重要,不仅方便用户使用存储器、提高内存利用率,...

2019-07-30 20:58:51 346

原创 有关makefile

Makefile脚本1、变量名CC=gcc // 编译器STD=-std=gnu99 // 编译标准FLAG=-Wall -WerrorOBJ=main.o addr_list.o tools.oBIN=通讯录2、目标(函数):其它目标名排在第个的目标先执行(类型C语言中的main函数)。目标可以依赖其它目标先执行。注意:目标下的指令必使用tab键缩进,不能用空格3、清理目标...

2019-07-29 19:01:05 124

原创 一些关于Linux库的知识

1.一些文件后缀跟参数文件后缀.h 头文件.gch 头文件的编译结果,一般不要保留。.c 源文件.i 预处理文件.s 汇编文件.o 目标文件.a 静态库文件.so 共享库文件文件后缀**.h 头文件.gch 头文件的编译结果,一般不要保留。.c 源文件.i 预处理文件.s 汇编文件.o 目标文件.a 静态库文件.so 共享库文件-参数-E 预处理...

2019-07-27 15:13:21 112

原创 UNIX/Linux系统部分系统函数

一、系统调用UNIX/Linux系统绝大部分功能都是通过系统调用实现,比如:open/close…UNIX/Linux把系统调用都封装成了C函数的形式,但他们并不是标准C的一部分。标准库中的函数绝大部分时间都工作在用户态,但部分时间也需要切换到内核(进行了系统调用),比如:fread/fwirte/malloc/free。我们自己所编写的代码也可以直接调用系统接口进入内核态(进行系统调用)...

2019-07-27 09:55:28 225

原创 一些之前学过却忘记了基础emmmmm

结构什么是结构:结构是一种由程序员设计出数据类型,是若干个基本数据类型组成,用于描述事物的各项信息。设计结构:struct 结构名{类型1 成员名1;类型2 成员名2;…};使用结构:使用结构类型创建结构变量。注意:C语言中struct关键字不能省略。struct 结构名 结构变量名;结构变量名.成员名 //访问成员初始化结构变量:struct 结构名 结构变量名 = ...

2019-07-25 14:15:51 141

原创 几道关于树的题目

1、将一棵有序二叉树,转换成一个有序的双向链表。2、有一棵二叉树,生成它的镜像树,在原树上进行调整。3、有两棵二叉树,A和B,判断B是否是A的子树。4、现在有一个的前序遍历和中序编译,请重新构建出这棵二叉树。{1,2,4,7,3,5,6,8}{4,7,2,1,5,3,8,6}5、判断一个序列是否是一棵二叉树的后序遍历结果。bool is_post(int arr[],Node* ro...

2019-07-23 20:12:52 1530

原创 数据结构与算法之树

树:元素之间存储一对多关系的数据结构,常用于表现族谱关系、组织关系等,也可以借助特殊的树型结构实现查找、排序等算法,一般使用倒悬树的方式表示。树的相关术语:根结点:树的最上层元素,有且只能有一个。子结点:该结点的对应下一层元素。父结点:该结点的对应上一层元素。叶子结点:没有子结点的元素,一般处于树的最底层。兄弟结点:具有同一个父结点的元素,处在同一层。高度:指的是树的层数。密度:指...

2019-07-23 20:05:01 74

原创 数据结构与算法之排序

排序算法的稳定性:当序列中有相同的数据,算法会不会改变这两个数据的前后位置。冒泡排序:是一种稳定排序,在排序过程中可以监测到数据是否已经有序(对数据的有序性敏感),可以立即停止,如果待排序的数据基本有序,则冒泡的效率是非常高的。插入排序:当一列已经有序,再有加入的数据时,适合使用插入排序。选择排序:是冒泡排序的一种变种,但是它没有冒泡对数据有序性的敏感,但它在排序过程中比较冒泡要少了...

2019-07-23 19:57:31 67

原创 数据结构与算法之查找

1.顺序查找:从头到尾逐一比较,对于要查找的数据没有要求,但方法简单,在小规模的数据查找中比较常用,但效率低。2.二分查找:前提就是数据必须有序,然后从数据的中间位置开始查起,如果中间值比key小,则从中间值位置开始继续查找,反之刚从开头到中位置查找,重复以上过程直到结束。从代码实现上来说,既可以用循环实现,也可以用递归实现。3.块查找、权重查找,适用于特殊条件下,需要对数据进行排序、分析、...

2019-07-23 19:51:23 182

原创 分享一下取变量名的神器

https://unbug.github.io/codelf/据说是个取变量名的神奇助教小哥哥真是个好人呐!

2019-07-19 20:47:30 773

原创 看我发现了什么!双向链表

双向链表结点的结构与单向链表的结点有所不同,多了一个prior。

2019-07-13 16:50:06 101

原创 顺序队列与链式队列

队列(逻辑结构)限制为有个端口进出元素,一个只管进,另一个只管出,就导致先进先出和特性。队列与栈都是功能受限的表。顺序队列、链式队列顺序队列:#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#define TYPE inttypedef struct Queue//结构体{...

2019-07-13 16:35:28 442

原创 顺序栈与链式栈

栈(逻辑结构)限制为只有一个端口进出元素,就导致先进后出和特性。顺序栈(容量在限)、链式栈(可以无限容量)。一般常用于,表达式解析,内存管理(函数的调用提供支持)。顺序栈:#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#define TYPE inttypedef stru...

2019-07-13 16:28:26 140

原创 链表的部分功能与题目

1.链表逆序。2.删除链表中重复的数据,只保留一份。3.检查链表中是否有环。4.查找环型链表的入口。5.检查两个链表是否是Y型链表,并找出入口。6.合并两并两个有序链表,结果依然保持有序。#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#define TYPE inttyp...

2019-07-13 16:21:23 92

原创 数据结构与栈

什么是数据结构:数据结构不是一门研究数据计算的的学科,而是研究数据与数据之间关系的。数据结构的起源:美国高纳德教授,于1968年开设一门《基本算法》的课程,开创的数据结构和算法的先河。提出一个公式:数据结构+算法=程序数据结构的基本概念:数据:能够输入到计算机的描述客观事物的符号。数据项:描述事物的其中一项指标。数据元素:用于描述一个完整的事物。数据结构:同志数据元素和元素之间的...

2019-07-11 10:03:38 102

原创 指针

指针什么是指针:指针是一种数据类型(整数),这种类型类型定义出的变量叫指针变量(简称指针)。内存的每个字节都有一个编号,指针变量中存储的就这种整数。1bit 最小的可用单位,能存储1或01byte = 8bit1kb = 1024byte1mb = 1024kb1gb = 1024mb1tb = 1024gb1pb = 1024tb为什么使用指针:用堆、优化...

2019-05-15 19:21:00 103

原创 变量

程序在内存中的分段当程序开始运行后,会加载到内存中,会把内存分成若干个段(60),每一段的功能、权限不同。代码段(text):程序中的二进制指令存储在此段,只读权限。只读段:存储常量、字符串字面值。bss段:静态数据段,程序运行时会先清理。全局段(data):存储全局变量。栈:局部变量,由操作系统管理,自动申请、释放。堆:由程序员手动管理。text、bss、data,程序编译完成后...

2019-05-15 19:19:39 87

原创 linux系统的命令 C的介绍

Linux系统命令文件相关touch 创建文件cat 查看文件内容cp src dest 复制文件mv src dest 移动文件重命名可以借助mv命令实现rm 删除文件,文件删除后很难恢复,删除时要慎重。目录相关mkdir dir 创建目录-p 可以创建多级目录cd dir 进入目录pwd 查看当所在的目录ls 显示当前目录下的文件-l 显示文件的详细信息,缩写ll...

2019-05-11 12:51:53 845

空空如也

空空如也

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

TA关注的人

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