自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello World!

这个人很懒,什么都没有留下!!!

原创 餐厅点餐系统设计思路

写在前面 本项目为练手小项目(初步成果,待完善),目的为了验证对于Linux网络编程方面的粗浅理解,若有不足,请留言指正,不胜感激! 附上项目源码:https://github.com/Adam-Xi/OrderMealSystem 开发环境:CentOS7、Windows10 开发工具(语言):...

2020-02-13 23:07:46

阅读数 15

评论数 0

原创 C++STL树形结构的关联式容器

关联式容器 STL容器分为序列式容器和关联式容器 序列式容器包括vector、string、list、deque、forward_list等,因为其底层为线性序列的数据结构,里面存储的是元素本身 关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>...

2020-01-21 20:41:17

阅读数 279

评论数 0

原创 Linux进程信号

信号概念 信号是进程之间事件异步通知的一种方式,会打断当前的进程,使之去处理信号的事件,信号是一种软件中断 信号的种类 每个信号都有一个编号和一个宏定义名称,这些宏定义可以在signal.h中找到,同时,在Linux系统7号手册中也可以找到 可以使用kill -l命令可以查看Linux系统下所有的...

2020-01-20 23:48:37

阅读数 17

评论数 0

原创 while(true) 和 for(;;) 比较

引子 今天在论坛中闲逛,看见一貌似很简单的问题 while(true)和forfor( ; ; )有区别吗,为什么C库源码中的都是for( ; ; )而不是while(true) 确实很简单的问题,可我确实不清楚,特此在网上查了一下 ,但是发现网上说法众说纷纭,经过查找资料,答案如下: 先抛答...

2020-01-16 15:09:08

阅读数 65

评论数 0

原创 Linux进程间通信

写在前面 为什么要进行进程间通信?     因为进程间具有独立性(每一个进程都有自己的虚拟地址空间,进程A并不知道进程B的虚拟地址空间中的内容),因此导致了进程之间协作的问题 进程间通信的目的:     数据传输:一...

2020-01-01 14:46:48

阅读数 702

评论数 0

原创 Linux文件

文件操作 关于C中的文件操作,详见C文件操作 除了C语言中的文件接口,其他各种语言也都提供了接口,在Linux下,也提供了几个系统调用接口来进行文件操作…这里只对常用的接口进行介绍 打开文件 #include <sys/types.h> #include <sys/stat.h...

2019-12-30 19:03:54

阅读数 405

评论数 1

原创 Linux进程控制

进程创建 fork 功能:从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程 函数原型: #include <unistd.h> pid_t fork(void); 返回值:子进程中返回0,父进程返回子进程的id,出错返回-1 进程调用fork,当控制转移到内核中的f...

2019-12-24 10:31:09

阅读数 494

评论数 0

原创 Linux进程概念

冯诺依曼体系结构 美籍匈牙利数学家冯·诺伊曼于1946年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。 冯·诺伊曼体系结构冯·诺伊曼理论的要点是:计算机的数制采用二进制;计算机应该按照程序顺序执行。人们把冯·诺伊曼的这个理论称为冯·诺伊曼体系结构 截止目...

2019-12-21 12:02:37

阅读数 485

评论数 0

原创 二叉搜索树

模拟实现 #include <iostream> using namespace std; //为了简化问题,将二叉搜索树定义为节点值都不相同的树 template<class T> struct BSTNode { BSTNode(const T& dat...

2019-12-20 17:18:53

阅读数 277

评论数 0

原创 CentOS7更换yum源和安装EPEL源及相关报错处理

写在前面 为什么要更换yum源 很多时候CentOS默认的yum源不一定都是国内镜像,所以导致yum在线安装和更新速度都不是很理想,这时候就需要把CentOS默认的yum源更换为国内镜像站点。而国内主要的Linux开源软件源为网易和阿里 为什么要安装EPEL源 通过yum源安装某些安装包时,会发现...

2019-12-17 16:26:01

阅读数 2111

评论数 0

原创 C++智能指针

智能指针

2019-12-11 15:03:26

阅读数 1607

评论数 0

原创 C++异常

异常:是指在程序运行周期发生的异常事件,一般情况下是不可预测的。 C的错误处理方式 终止程序 如assert,缺陷:用户难以接受。如发生内存错误,除0错误时就会终止程序 返回错误码 缺陷:需要程序员自己去查找对应的错误。如系统的很多库的接口都是通过把错误码放到errno中,表示错误 setjmp和...

2019-11-21 16:46:24

阅读数 227

评论数 0

原创 浅析Linux权限

Linux权限概念 Linux下有两种用户:超级用户(root)、普通用户 超级用户:可以在Linux系统下做任何事情,不受限制 普通用户:在Linux下做有限的事情 超级用户的命令提示符是"#",普通用户的命令提示符是"$" Linux权限管理 1、文...

2019-11-14 17:02:09

阅读数 1019

评论数 0

原创 C++多态

C++多态

2019-11-09 18:27:16

阅读数 1038

评论数 0

原创 C++继承

一、继承简介 众所周知,C++是面向对象(OOP)的一门语言,而面向对象的三大特性为封装,继承,多态。由此可见,继承是面向对象程序设计中的重要特性之一,本篇中将介绍一下C++中的继承特性及用法。 概念 继承机制是面向对象程序设计中实现代码复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行...

2019-11-08 00:19:40

阅读数 1034

评论数 0

原创 C文件操作

c文件操作

2019-11-04 21:33:55

阅读数 1409

评论数 0

原创 皇后问题,8皇后、n皇后、2n皇后

8皇后问题 问题描述: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。 该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出: 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在...

2019-10-29 23:24:07

阅读数 2005

评论数 0

原创 Linux基本命令

ls 语法:ls [选项] [目录或文件] 功能:对于目录,将列出该目录下所有子目录和文件;对于文件,将列出文件的所有信息 常用选项: -a:列出目录下的所有文件,包含隐含文件 -l: 列出文件的详细信息 -r: 对目录反向排序 -t: 以时间排序 -R: 递归列出所有子目录下的文件 tips...

2019-10-27 19:45:03

阅读数 1119

评论数 0

原创 C++模板(二)

模板

2019-10-26 17:37:04

阅读数 484

评论数 0

原创 C++之STL

STL

2019-10-26 13:13:34

阅读数 233

评论数 0

原创 priority_queue的模拟实现

//优先级队列 #include<iostream> using namespace std; //priority_queue的模板参数: T--元素类型,Container--底层数据结构(默认为vector),Compare--比较方式(大堆/小堆---less/greater...

2019-10-25 20:16:10

阅读数 1210

评论数 0

原创 queue的模拟实现

#include<iostream> using namespace std; #include<deque> //库函数中queue的底层结构为deque //模板参数: T--数据类型 Container--底层数据结构 template<class T, ...

2019-10-25 20:01:34

阅读数 399

评论数 0

原创 stack的模拟实现

#include<iostream> using namespace std; #include<deque> //模板参数: T--数据类型 Container--底层数据结构 template<class T, class Container = dequ...

2019-10-25 19:59:29

阅读数 369

评论数 0

原创 STL之deque

deque介绍 1、deque是动态大小的序列式容器,可以向两端进行扩容或压缩 2、特定的库可以以不同的方式实现deque,但通常都是一种动态数组。不论在何种情况下,它都允许通过随机访问迭代器直接访问单个元素 3、deque提供了一些与vector相似的功能,但deque在头部和尾部进行数据插入和...

2019-10-25 19:47:11

阅读数 234

评论数 0

原创 STL之list

list介绍 1、list是可以在常数范围内在任意位置进行插入删除的序列式容器,并且该容器可以前后双向迭代 2、其底层结构:带头结点的双向循环链表 3、list和forward_list相似:但是forword_list是单链表,只能朝前迭代 4、与其他容器相比,list在任意位置插入删除更加高效...

2019-10-25 18:58:20

阅读数 229

评论数 0

原创 STL之vector

vector介绍 简言之,vector是表示可变大小数组的容器序列 其底层结构:可存放任意数据类型的动态类型顺序表 具体介绍如下: 1、和数组一样,vector也是用一片连续空间存储数组,意味着它可以和数组一样高效地通过下标访问每个空间中的元素,但和数组不同的是,它的大小可以动态改变,而且是被容器...

2019-10-25 18:16:00

阅读数 247

评论数 0

原创 浅析C/C++中const

const

2019-10-14 21:41:27

阅读数 1112

评论数 0

原创 浅析size_t

size_t

2019-10-14 20:08:51

阅读数 1117

评论数 0

原创 简易shell的实现

/* 自主minishell实现 * 1、获取标准输入 * 2、解析输入得到[命令名] + [运行参数] * 3、创建子进程 * 子进程中进行程序替换 * 4、进程等待 */ #include<stdio.h> #include<unistd.h> #i...

2019-10-13 20:06:02

阅读数 354

评论数 0

原创 list的模拟实现

#include<iostream> using namespace std; #include<assert.h> template<class T> struct ListNode { ListNode(const T& data = T())...

2019-10-13 20:02:58

阅读数 743

评论数 0

原创 vector的模拟实现

#include<iostream> using namespace std; #include<assert.h> #include<string> //vector的底层结构为可存放任意类型的动态顺序表 //由于可存放任意类型,所以用模板来进行模拟实现 t...

2019-10-13 14:19:12

阅读数 651

评论数 0

原创 string的模拟实现

阿发达深V啊

2019-10-11 17:16:05

阅读数 386

评论数 0

原创 STL之string

了解string类 1、string是表示字符串的字符串类 2、该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。 3、string在底层实际是: basic_string模板类的别名,typedef basic_string<char, char_trai...

2019-09-28 20:33:37

阅读数 484

评论数 0

原创 string类---例题

翻转字符串 class solution { public: string reverseString(string s) { if (s.empty()) { return s; } size_t start = 0; size_t end = s.size() -...

2019-09-27 00:03:58

阅读数 570

评论数 0

原创 C++模板(一)

泛型编程 如何实现一个通用的函数呢? 虽然使用函数重载可以实现,但是缺点很明显: 1、重载函数仅仅只是类型不同,代码复用率低,只要有新类型出现,就需要增加新的函数 2、代码可维护性低,一个出错可能所有的重载都出错 由此,引入了泛型编程的概念! 泛型编程: 编写与类型无关的通用代码,是代码复用的一种...

2019-09-25 23:41:28

阅读数 246

评论数 0

原创 C++内存管理

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

2019-09-25 23:03:34

阅读数 829

评论数 0

原创 C++类与对象(三)

static成员 概念 声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量;用static修饰的成员函数,称之为静态成员函数。 静态的成员变量一定要在类外进行初始化 特性 1、静态成员为所有类对象所共享,不属于某个具体的实例 2、静态成员变量必须在类外定义...

2019-09-23 22:26:56

阅读数 640

评论数 0

原创 C总结

2019-09-21 23:46:34

阅读数 1330

评论数 1

原创 C++类与对象(二)

类的六个默认成员函数 如果一个类中什么成员都没有,简称为空类,可是空类中就什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下列六个成员函数: 构造函数 构造函数是一个特殊的成员函数,名字与类型相同,创建类型对象时有编译器自动调用,保证每个数据成员都有一个合适的初值,并且在对象的...

2019-09-16 00:49:22

阅读数 821

评论数 0

原创 DateClass

#include<iostream> using namespace std; class Date { public: Date(int year = 1999, int month = 1, int day = 1) //构造函数 { _year = year; ...

2019-09-16 00:47:58

阅读数 160

评论数 0

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