自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 实现shell

自主实现shell

2017-12-15 10:58:47 323

原创 LInux4_进程

学习进程创建, 等待, 终止. 使用代码实现. 调研popen/system, 理解这两个函数和fork的区别. 调研vfork创建的子进程, 直接return为什么会出现崩溃

2017-12-08 19:28:55 219

原创 Linux3_进程基础概念

操作系统的常见进程调度算法时间片轮转调度算法(RR):给每个进程固定的时间片,根据进程到达的先后顺序让进程在单位时间片内执行,执行完成后便调度下一个进程执行,时间片轮转调度不考虑进程等待时间和执行时间,属于抢占式调度. 优点:兼顾长短作业. 缺点:平均等待时间较长,上下文切换较费时.适用于分时系统 模拟代码如下#pragma once#include<iostream>#include

2017-12-05 14:30:19 339

原创 Linux_2 工具&进程

1linux实现进度条2探讨源码安装,yum安装rpm安装,yum安装3.task_struct结构体,理解结构体各个字段好的含义

2017-12-03 14:04:28 1409

原创 Linux_1 基础指令学习

进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限.1.进入目录需要哪些权限r-read的权限 w-write的权限 x-修改可执行权限 之后x权限才可以cd到该目录下面2。在目录中执行增删改…(cd,touch,ls,rm,mv)只有拥有x&w权限才可以切换到该目录下进行touch,当拥有x&r时才可以切换到该目录下进行ls操

2017-11-28 17:41:08 289

原创 二叉树

定义二叉树在图论中是这样定义的:二叉树是一个连通的无环图,并且每一个顶点的度不大于3.有根二叉树还要满足根节点的度不大于2.有了根节点之后,每个顶点定义了唯一的父节点,和做多2个子节点.然而,没有足够的信息来区分做节点和右节点.如果不考虑连通性,允许途中有多个连通分量,这种结构叫做森林.分类完全二叉树——若设二叉树的高度为h,除第h层外,其他各层的节点数都达到最大个数,第h层有叶子结点,并且叶子结

2017-09-17 13:50:35 429

原创 STL中vector和list的使用

vectorvector时可以改变大小的数组的序列容器 意向书组车一样,vetctor为它们的元素使用连续的存储位置,这意味着vector的元素也可以使用对其元素的常规指针的偏移来访问,但是与list不同,它们的大小可以动态的改变,其存储由容器自动处理. vector擅长的方面 1. 通过为止索引访问单个元素.(O(1)) 2. 按照任意顺序遍历元素 3. 从它的末端天嘉禾删除元素(

2017-09-03 09:33:19 540

原创 为什么模板不支持分离编译

首先我要介绍分离编译的概念?一个程序由若干个原文件共同实现,每个源文件单独编译生成目标文件,然后再将所有的目标文件链接起来生成单一的可执行程序的过程.ps.我所理解的分离编译就是不在同一个.h或.cpp文件中定义和实现.程序编程过程如图所示 生成的源文件即在对应的.h和.cpp文件组成编译单元(其中.h的代码被扩展到包含.h的.cpp文件里),然后编译器把.cpp问津编译为目标文件.obj文件(文

2017-08-31 16:08:38 527

原创 大数运算_string类的简单应用

在通过对string类的学习之后,我们就可以通过对string类的使用去模拟大数的运算.#pragma once#include<string>#include<assert.h>#include<iostream>using namespace std;typedef long long INT64;#define Max_INT64 0x7FFFFFFFFFFFFFFF#defi

2017-07-25 14:27:35 430

原创 c++实现单链表,双向链表,顺序表的接口(非模板)

在以前使用c实现单链表的时候,没有使用函数的复用去完成相应的接口操作,这次使用尽量多的复用去完成链表和顺序表的操作(包括故意使用insert()去复用pushback()这个逻辑是错的,只是为了 体现复用的简便)单链表struct SListNode{ SListNode* _next; DataType _data; SListNode(DataType x)

2017-07-18 22:33:05 314

原创 深浅拷贝与写时拷贝

在c++中,基本所有的类都要考虑深拷贝,浅拷贝与写时拷贝,根据不同的定义,选择适合自己的拷贝方式。时间类就可以用浅拷贝,而二叉树,string类就需要深拷贝。 string类在vs编译器下使用的深拷贝,在Linux下使用的浅拷贝。 为什么会存在深浅拷贝的问题呢? string的浅拷贝是让两个不同的指针指向同一块空间,而这在析构的时候会出现将一块空间释放两次,程序会崩溃,因此我们才需要进行

2017-07-13 13:57:07 425

原创 讨论构造函数的N种调用情况的问题

c++对传参和传返回值时构造的优化处理c++形式参数类型和返回值类型如果是引用,那么在传递时,那么在传递时,会把实参或者返回值的引用自动赋值给形式参数(返回值)c++返回赋值和返回值的使用往往会进行编译器的优化.c++函数参数(或者返回值)赋值时,如果其类型是类类型并且对应的构造函数存在,那么会自动调用匹配的构造函数构造 任何的问题只有实践之后才能知晓真正的原理class AA {};

2017-07-13 10:45:28 263

原创 c&c++动态内存管理

malloc/free和new/delete的区别和联系:区别:malloc/free函数原型 void *malloc(long NumByte);该函数分配了NumBytes个字节,并返回了指向这块内存的指针.如果分配失败,则返回一个空指针(NULL); void free(void*FirstByte):该函数是将之前malloc分配的空间还给程序或者操作系统,也就是释放了这块内存.内

2017-07-13 10:13:05 220

原创 日期类(Date)_运算符重载简单应用

面对日期类里面的加加减减涉及到的进位和借位,我更倾向使用一个保存了每个月天数的数组代替,虽然很占内存,但是方法简化了,而且不需要遍历数组,只需要拿到月份的数字,用月份的数字当下标就可以得到这个月的天数(哈希表的简单应用),这种方法很好用,尤其是在需要不断的遍历数组的时候,可以用这种方法代替遍历. 在写代码的时候,还需要注意代码的复用,这样写代码的效率会变高,不会把时间都浪费在写很多类似的逻辑上,比

2017-06-30 10:58:44 637

原创 ACM_1088滑雪(递归的简单应用)

Description(描述)Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21

2017-06-29 09:33:34 974

原创 小项目_扫雷

扫雷小程序是c语言学习到一个阶段之后的简单应用,c语言初学者学习到数组之后就可以着手开始写这个小代码,代码不长,200+,且属于比较简单的逻辑,主要逻辑如下: 1. 构建棋盘 2. 构造雷盘,并在雷盘上随机放入一定量的的雷数 3. 用户规定一个位置,如果信息为0则继续展开,如果有雷的信息,则输出到棋盘上,不继续展开 4. 失败条件,踩到雷; 5. 胜利条件没有除了雷以外的空位置;#defi

2017-06-29 09:16:57 407

原创 poj ACM1031

原题翻译如: 在一些平坦的场地上有一个被围栏围住的区域。篱笆具有高度h,在平面投影中,它具有由其N个顶点的笛卡尔坐标(Xi,Yi)指定的封闭多边形线(无自相交)的形式。在坐标(0,0)的点上,一个灯站在场上。灯可以位于栅栏的外部或内部,但不在其侧面,如下图所示(图中细线所示的部分不被灯照亮): 栅栏是完全黑色的,即它既不反射也不扩散,也不能让光通过。研究和实验表明,以下法律表达了落在该栅栏任意照明

2017-06-22 14:08:07 383

原创 ACM1008玛雅日历

原题如下:教授发现玛雅人使用了一个一年有365天的叫做Haab的历法。这个Haab历法拥有19个月,在开始的18个月,一个月有20天,月份的名字分别是pop, no, zip, zotz, tzec, xul, yoxkin, mol, chen, yax, zac, ceh, mac, kankin, muan, pax, koyab, cumhu。 这些月份中的日期用0到19表示。Haab历

2017-06-20 17:12:09 1158

原创 c++入门

1.命名空间 C++所有的标识符都存到一个std的命名空间内,只有调用这个命名空间才能使用标识符(using namespace std;); 当然,我们也可以使用自定义的命名空间去定义多个同名变量,函数,只需在调用的时候加上自定义命名空间的名称作用域限定符即可; 在实际使用中,对于小组开发的程序,命名空间起着重要的作用,使得小组成员写的同名函数可以正常使用。 2.C++基本的输入输出流(

2017-06-19 16:52:18 212

原创 单链表_进阶版

1.判断单链表是否带环?若带环,求环的长度?求环的入口点?并计算每个算法的时间复杂度&空间复杂度。 int CirculLength( ListNode*crossing){ ListNode *cur = crossing; int count = 1; while (cur == crossing&&count != 1) { cur = cur

2017-06-19 16:13:11 295

原创 c语言实现简单单链表

1.比较顺序表和链表的优缺点,说说他们正在什么场景下使用? 答: 对于顺序表,无论是动态还是静态,他们有都会死连续的存储空间,在读取时间效率上比较短,但在插入和删除时会比较麻烦,需要不断的遍历去找到尾节点。 对于链表,因为是链式存储。因此在需要的时候我们才在堆上进行开辟空间,链表对于插入删除比较简单,但是遍历需要多次跳转。 对于空间申请方式: 顺序表

2017-06-19 14:58:10 455

原创 stl(基本定义)

stl被内建在编译系统之内,stl的版本很多,常见的有hp stl ,pj stl sgi stl 在C++标准中,stl被组织为以下十三个头文件,algorithm 的确functional iterator arrary vector list map memory numeric queue set unordered_set stack utility stl可分为容器,迭代器,空间

2017-05-29 19:41:19 358

原创 智能指针

RAII是一种规范,用来解决问题的思想,定义类来封装资源分配和释放,构造函数完成资源的分配和初始化,析构函数完成资源的清理 智能指针不是指针,是一个类,可以实现 1. 智能管理指针的释放 2. 能够像指针一样使用 3. 完成正常的赋值拷贝 是RAII的一种应用 auto_ptr:较早期的智能指针,在实现赋值运算符重载时,使用管理权的转移来实现,有缺陷;templete<classT>c

2017-05-08 23:06:01 223

原创 c++之多态

多态问题简单的概括就是“一个接口,多种方法”,程序在运行时才能决定调用的函数,它是面向对象编程领路的核心概念,字面意思就是多种状态。 c++多态是用过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖(或者称为重写),重写分为两种,直接重写成员虚函数和重写虚函数,只有重写了虚函数才算是体现了c++的多态性!!!而重载则是允许有多个同名函数,而这些函数的参数列表不同,允

2017-04-28 14:05:09 247

原创 c++之各种继承(单继承,多继承,菱形继承)

基本简介在c++语言中。,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承,从多个基类派生的继承称为多继承。继承可以使代码得到复用,子类还可以在父类的基础上添加功能 c++继承分为公有继承,私有继承,保护继承三类 单继承的定定义格式: class <派生类名>:<继承方式><基类名> { <派生类新定义成员> } 多继承的定定义格式: cla

2017-04-27 14:12:32 584

原创 c++默认的六个成员函数

默认的六个成员函数包括构造函数拷贝构造函数析构函数赋值运算符重载取地址运算符(&)重载const修饰的取地址运算符重载构造函数构造函数的命名必须和类名完全相同;构造函数的功能主要用于在类的对象创建时定义初始化的状态。没有返回值,也不能用void修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择,而其他方法都有返回值,即使是void返回值。尽管方法体本身不会自动返回什么

2017-04-16 22:55:33 254

原创 ACM1008玛雅历 剖析

原题如下:上周末,M.A. Ya教授对古老的玛雅有了一个重大发现。从一个古老的节绳(玛雅人用于记事的工具)中,教授发现玛雅人使用了一个一年有365天的叫做Haab的历法。这个Haab历法拥有19个月,在开始的18个月,一个月有20天,月份的名字分别是pop, no, zip, zotz, tzec, xul, yoxkin, mol, chen, yax, zac, ceh, mac, kankin

2017-03-25 13:58:07 1234 1

原创 c与c++区别之this指针的巧妙应用

this指针(一个永远指向调用对象首地址的指针)为什么要使用this指针在c++刚开始学习的过程中,通篇都在强调“类是对象的抽象,对象是类的示例”。那么当同一个类内的不同对象调用同一个函数体的时候,函数体将不同对象的数据进行整合计算,得到的值在返回到该对象的过程是如何实现的呢?在c语言中我们习惯使用一个指向结构体的指针实现,而在c++中,函数体会隐式的调用this指针,将对象的首地址传给函数体而实现

2017-03-12 18:18:40 574

原创 学习c的第一天

我是一名来自西安工业大学的一个普通的大二学生,为了提高自己,来到CSDN学习,分享学习心得体会,并且希望有机会结识编程大牛,让自己也能成为大牛而加油。为了成为大牛,是时候用机械键盘啪啪啪的敲代码而不是整天只是qwer或者wasd shift q e,卸载游戏,把过去最原始的编译器舍弃,换上最顺手的工具,接下来,就唯有勤奋可以与这些东西作伴,以后每天都会来论坛上看大牛来给像我们这样的小白解决问题,看

2016-11-25 15:10:42 241

高质量c c++ 编程

熟读之后,可以养成一个规范的习惯

2017-06-29

空空如也

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

TA关注的人

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