自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Go程序设计语言学习--方法

方法Go语言没有统一的面向对象编程的定义,对我们来说,对象就是简单的一个值或者变量,并且拥有方法,方法是某种特定类型的函数,面向对象编程就是使用方法来描述每个数据结构的属性和操作,使用者不需要了解对象本身的实现。一、方法声明方法的声明和普通函数的声明类似,只是在函数名前面多加了一个参数,这个参数把这个方法绑定到这个参数对应的类型上。type Point struct{ X, Y int}//普通函数func AddSum(p, q Point)(int, int){ retur

2021-05-15 20:39:11 168

原创 Go程序设计语言学习--函数

函数函数包含连续的执行语句,可以再代码中通过调用函数来执行它们。函数能够将一个复杂的工作切分成多个更小的模块,使得多人协作变得更容易。函数对它的使用者隐藏了实现细节。这几方面的特性使函数成为多数编程语言的重要特性之一。一、函数声明每个函数声明都包含一个名字、一个形参列表、一个可选的返回列表以及函数体:func name(parameter-list)(result-list){ body}形参列表指定了一组变量的参数名和参数类型,这些局部变量都由调用者提供的实参传递而来。返回列表指定了

2021-05-10 20:48:04 127

原创 Go程序设计语言学习--复合数据类型

复合数据类型复合数据类型是由基本数据类型以各种方式组合而成的。数组和结构体都是聚合类型,它们的值由内存中的一组变量构成。数组的元素具有相同的类型,而结构以中的元素类型则可能不同。数组和结构体的长度都是固定的。slice和map都是动态数据结构,它们的长度在元素添加到结构体中时可以动态增长。一、数组数组是具有固定长度且拥有零个或多个相同数据类型元素的序列。数组中的元素通过索引访问,索引从0到数组长度减1。Go的内置函数len可以返回数组中的元素个数。var a [3]int //定义一个有三个整数

2021-04-25 19:33:36 179

原创 Go程序设计语言学习--基本类型

基本数据Go的数据类型分为四大类:基础类型:数字、字符串和布尔型聚合类型:通过组合各种简单类型得到的更复杂的数据类型引用类型:指针、map、slice、函数和通道接口类型一、整数Go的数值类型包括了几种不同大小的整数、浮点数和复数。有符号整数分为四种大小:8位、16位、32位、64位,分别用int8、int16、int32、int64表示,对应无符号整数用uint8、uint16、uint32、uint64表示。此外还有int和uint类型,这两种类型大小相等,都是32位或64位,不同的编译器

2021-04-17 13:38:17 184

原创 Go程序设计语言学习--程序结构

程序结构一、名称Go中函数、变量等名称遵循一个简单的规则,即开头是一个字母或下划线,后面可以跟任意数量的字符、数字和下划线,并区分大小写。Go中有25个关键字,只能用在语法允许的地方,不能作为名称使用,关键字如下:breakdefaulltfuncinterfaceselectcasedefergomapstructchanelsegotopackageswitchconstfallthroughifrangetypecontinu

2021-04-13 12:49:11 184

原创 【Linux】线程安全

一.线程安全概念:多个线程同时对临界资源进行访问,不会造成数据二义问题实现:同步+互斥同步:对临界资源访问的时序合理性互斥:对临界资源同一时间访问的唯一性线程间互斥的实现:互斥锁mutexpthread_mutex_t mutex; //定义互斥锁变量pthread_mutex_init(pthread_mutex_t *restrict mutex, const ...

2019-09-03 20:23:04 122

原创 【Linux】线程控制

一.线程创建int pthraed_create(pthread_t *thread,const pthread_attr_t *attr,void*(*start_routine)(void*),void *arg); thread:用于获取线程id--线程地址空间在整个虚拟地址空间中的首地址 attr:设置线程属性,通常置NULL start_routine:线程的入口函数 ...

2019-09-02 11:04:37 88

原创 【Linux】线程概念

一.线程1.线程概念线程是一个执行流,用来运行代码、处理数据在传统操作系统下,使用pcb来描述一个程序的运行(进程)在Linux下,使用pcb来模拟实现线程,因此Linux下pcb实际上是一个轻量级进程这个轻量级进程因为共用大部分进程资源,相较于传统进程更加轻量化2.线程优缺点优点:创建线程的代价比创建进程的代价小得多线程占用的资源比进程少得多线程之间的切换需要操作系统做的工作...

2019-08-20 17:32:47 166

原创 【Linux】进程信号

一.信号信号用于通知一个事件的发生,会打断当前操作,去处理这个事件前提是必须能识别这个信号生命周期:产生->注册->注销->处理种类:非可靠信号:1-31号;可靠信号:34-64号查看信号种类kill -l1.信号的产生:硬件产生,软件产生硬件产生:ctrl+c/ctrl+|/ctrl+z软件产生:kill -signum pid//向进程发送一个sign...

2019-08-11 11:55:03 131

原创 【Linux】进程间通信

一.管道1.匿名管道只能用于具有亲缘关系的进程间通信2.命名管道可以用于同一主机上任意进程间通信3.管道的读写特性1)若管道中没有数据,则read阻塞,直到数据被写入2)若管道中数据满了,则write阻塞,直到数据被读取3)若管道的所有读端被关闭,则write会触发异常,进程退出3)若管道的所有写端被关闭,则read不再阻塞,读完数据后返回04.命名管道的文件打开特性1)若文...

2019-08-06 15:26:06 97

原创 【Linux】网络编程套接字

一.udp套接字

2019-08-01 13:25:52 749

原创 【Linux】基础IO

一.系统文件IO1.open、read、write、lseek、closeint open(const char *pathname, int flags);ssize_t read(int fd, void *buf, size_t count);ssize_t write(int fd, const void *buf, size_t count);off_t lseek(int f...

2019-07-31 16:19:18 91

原创 【C++】STL简介

一.STLSTL(standard template library-标准模板库),是C++的重要组成部分,不仅是一个可复用的组件库,也是一个包罗数据结构与算法的软件框架二.版本1.原始版本HP版本-开源使用,无需付费2.P.J.版本继承自HP版本,被WindowsVisual C++采用,不能公开或修改,可读性较低,符号命名比较怪异3.RW版本继承自HP版本,被C++ Bulid...

2019-07-23 10:58:20 180

原创 【C++】模板初阶

一.泛型编程函数重载可以实现通用的交换函数,但有一些缺点(1)重载的函数仅仅只是类型不同,代码复用率较低,只要有新类型出现,就要增加对应的函数(2)代码的可维护性较低,一个出错可能所有的函数均出错泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础二.函数模板1.概念函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的待...

2019-07-22 11:55:01 145

原创 【C++】C/C++内存管理

一.C/C++内存分布1.栈又叫堆栈,非静态局部变量/函数参数/返回值等等,栈是向下增长的2.内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可以使用系统接口创建共享内存,做进程间通信3.堆用于程序运行时动态内存分配,堆是向上增长的4.数据段,存储全局数据和静态数据5.代码段,可执行的代码/只读常量二.C语言中动态内存管理方式malloc/calloc/real...

2019-07-22 09:16:15 273 2

原创 【数据结构】树及二叉树的基本概念

一.树1.树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成的一个具有层次关系的集合。2.树的特点每个结点有0个或多个子节点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树结点的度:一个结点含有的子树的个数称为该结点的度;如:A的度为6叶结点或终端结点(无子结点的结点):度为0的结点称为叶结点;如:...

2019-07-18 16:04:19 247

原创 【C++】类与对象(3)

一.构造函数1.构造函数体赋值在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值class Date{public: Date(int year, int month, int day) { _year = year; _month = month; _day = day; }private: int _year; int _month;...

2019-07-18 14:24:14 91

原创 【C++】类与对象(2)

一.类的6个默认构造函数构造函数:主要完成初始化工作析构函数:主要完成清理工作拷贝构造函数:使用同类对象初始化创建对象赋值操作符重载:主要是把一个对象赋值给另一个对象取地址及const取地址操作符重载:主要是普通对象和const对象取地址二.构造函数1.概念构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并且在对...

2019-07-17 16:52:32 55

原创 【Linux】进程控制

一.1.进程创建

2019-07-16 13:45:51 61

原创 【C++】类与对象(1)

一.类与对象C语言是面向过程的,关注的是过程中的数据与方法C++是基于面向对象的,关注的是对象的属性与功能C语言中,结构体中只能定义变量C++中,结构体内不仅可以定义变量,也可以定义函数C++中更喜欢用class代替struct二.类的定义class className{ //类体:由成员函数和成员变量组成}; class为定义类的关键字,className为类的名字,{}...

2019-07-16 10:32:16 127

原创 【C++】入门

一.关键字(C++98)a:asm autob:bool breakc:case catch char class const const_cast continued:delete do double dynamic_cast defaulte:else enum explicit externf:false float for friendg:gotoi:if inline i...

2019-07-14 15:07:03 181

原创 【Linux】进程概念

一.进程的概念运行起来的程序,但是在操作系统层面,pcb(进程控制块)就是进程。二.进程的调度算法1.调度进程调度方式是指当某一处进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要处理,即有优先权更高的进程进入就绪队列,此时应如何分配处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。2.调度算法(1)先来先服务调度算法(FCFS...

2019-06-22 21:15:00 330

原创 【Linux】进度条

进度条代码#include <stdio.h>#include <unistd.h>#include <string.h>int main(){ int i = 1; char bar[102]; memset(bar, 0, sizeof(bar)); const char* lable = "|/-\\"; ...

2019-06-04 12:04:59 109

原创 【Linux】常用工具

1.vim配置- 进入到~/.vimrc这个文件里面- 执行 vim ~/.vimrc进入配置文件配置如图2.其他编辑器(1)Light Table:一个免费开源的编辑器,它有一个非常干净的界面,并有大量扩展。它与Windows、Mac和Linux都兼容,是高度可定制的。使用Light T安不了,开发者只需打开一个浏览器窗口即可实时查看更改,并且支持不同的嵌入。(2)Chocolat...

2019-06-04 11:44:56 190

原创 【LINUX】基础命令

1.ls:浏览文件内容对于目录,该命令列出该目录下所有子目录和文件。对于文件,列出文件名以及其他信息。ls下的操作:-a:列出目录下的所有文件,包括以 . 开头的隐含文件-d:将目录像文件一样显示,而不是显示其下的文件,如:ls -d 指定目录-i:...

2019-05-16 22:56:10 63

原创 【数据结构】链表

1.链表概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。分类:(1)单链表、双向链表(2)不带头单链表、带头链表(3)单链表、循环单链表(4)无头单相非循环链表、带头双向循环链表2.带头节点和不带头节点的区别带头节点和不带头节点的区别体现在清空和销毁上,不带头节点链表中,请空链表和销毁链表作用相同,而带头节点链表的...

2019-05-06 15:23:27 260

原创 【数据结构】顺序表

1.线性结构数据结构课程中数据的逻辑结构分为线性结构和非线性结构。线性结构是一个有序数据元素的集合常用的线性结构有:线性表,栈,队列,双队列,数组,串。常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等)2.线性结构中包含的内容线性结构包含以下内容(1)数据的逻辑结构。数据的逻辑结构与数据在计算机中的存储方式无关,它用来抽象地反映数据元素之间的逻辑关系。逻辑结构可分为线性结...

2019-05-06 14:24:03 352

原创 【数据结构】时间复杂度和空间复杂度

如何衡量一个算法的好坏?算法:用一系列的计算步骤,将输入数据转化为输出结果算法效率:时间效率(时间复杂度)和空间效率(空间复杂度)一个算法的好坏取决于这个算法的效率,即时间效率和空间效率,时间和空间效率约高,算法越好。什么是时间复杂度?算法中的基本操作的执行次数,称为算法的时间复杂度。时间复杂度为什么不使用时间来衡量而使用基本语句的运行次数来衡量?因为每台计算机的cpu等...

2019-05-02 15:00:53 200

原创 【C语言】思维导图

2019-04-22 16:20:46 219

空空如也

空空如也

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

TA关注的人

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