- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 LInux4_进程
学习进程创建, 等待, 终止. 使用代码实现. 调研popen/system, 理解这两个函数和fork的区别. 调研vfork创建的子进程, 直接return为什么会出现崩溃
2017-12-08 19:28:55
228
原创 Linux3_进程基础概念
操作系统的常见进程调度算法 时间片轮转调度算法(RR):给每个进程固定的时间片,根据进程到达的先后顺序让进程在单位时间片内执行,执行完成后便调度下一个进程执行,时间片轮转调度不考虑进程等待时间和执行时间,属于抢占式调度. 优点:兼顾长短作业. 缺点:平均等待时间较长,上下文切换较费时.适用于分时系统 模拟代码如下 #pragma once #include<iostream> #include
2017-12-05 14:30:19
355
原创 Linux_2 工具&进程
1linux实现进度条 2探讨源码安装,yum安装rpm安装,yum安装 3.task_struct结构体,理解结构体各个字段好的含义
2017-12-03 14:04:28
1446
原创 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
294
原创 二叉树
定义二叉树在图论中是这样定义的:二叉树是一个连通的无环图,并且每一个顶点的度不大于3.有根二叉树还要满足根节点的度不大于2.有了根节点之后,每个顶点定义了唯一的父节点,和做多2个子节点.然而,没有足够的信息来区分做节点和右节点.如果不考虑连通性,允许途中有多个连通分量,这种结构叫做森林.分类 完全二叉树——若设二叉树的高度为h,除第h层外,其他各层的节点数都达到最大个数,第h层有叶子结点,并且叶子结
2017-09-17 13:50:35
596
原创 STL中vector和list的使用
vectorvector时可以改变大小的数组的序列容器 意向书组车一样,vetctor为它们的元素使用连续的存储位置,这意味着vector的元素也可以使用对其元素的常规指针的偏移来访问,但是与list不同,它们的大小可以动态的改变,其存储由容器自动处理. vector擅长的方面 1. 通过为止索引访问单个元素.(O(1)) 2. 按照任意顺序遍历元素 3. 从它的末端天嘉禾删除元素(
2017-09-03 09:33:19
550
原创 为什么模板不支持分离编译
首先我要介绍分离编译的概念?一个程序由若干个原文件共同实现,每个源文件单独编译生成目标文件,然后再将所有的目标文件链接起来生成单一的可执行程序的过程.ps.我所理解的分离编译就是不在同一个.h或.cpp文件中定义和实现.程序编程过程如图所示 生成的源文件即在对应的.h和.cpp文件组成编译单元(其中.h的代码被扩展到包含.h的.cpp文件里),然后编译器把.cpp问津编译为目标文件.obj文件(文
2017-08-31 16:08:38
543
原创 大数运算_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
445
原创 c++实现单链表,双向链表,顺序表的接口(非模板)
在以前使用c实现单链表的时候,没有使用函数的复用去完成相应的接口操作,这次使用尽量多的复用去完成链表和顺序表的操作(包括故意使用insert()去复用pushback()这个逻辑是错的,只是为了 体现复用的简便)单链表struct SListNode { SListNode* _next; DataType _data; SListNode(DataType x)
2017-07-18 22:33:05
324
原创 深浅拷贝与写时拷贝
在c++中,基本所有的类都要考虑深拷贝,浅拷贝与写时拷贝,根据不同的定义,选择适合自己的拷贝方式。时间类就可以用浅拷贝,而二叉树,string类就需要深拷贝。 string类在vs编译器下使用的深拷贝,在Linux下使用的浅拷贝。 为什么会存在深浅拷贝的问题呢? string的浅拷贝是让两个不同的指针指向同一块空间,而这在析构的时候会出现将一块空间释放两次,程序会崩溃,因此我们才需要进行
2017-07-13 13:57:07
429
原创 讨论构造函数的N种调用情况的问题
c++对传参和传返回值时构造的优化处理 c++形式参数类型和返回值类型如果是引用,那么在传递时,那么在传递时,会把实参或者返回值的引用自动赋值给形式参数(返回值) c++返回赋值和返回值的使用往往会进行编译器的优化. c++函数参数(或者返回值)赋值时,如果其类型是类类型并且对应的构造函数存在,那么会自动调用匹配的构造函数构造 任何的问题只有实践之后才能知晓真正的原理 class AA {};
2017-07-13 10:45:28
273
原创 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
228
原创 日期类(Date)_运算符重载简单应用
面对日期类里面的加加减减涉及到的进位和借位,我更倾向使用一个保存了每个月天数的数组代替,虽然很占内存,但是方法简化了,而且不需要遍历数组,只需要拿到月份的数字,用月份的数字当下标就可以得到这个月的天数(哈希表的简单应用),这种方法很好用,尤其是在需要不断的遍历数组的时候,可以用这种方法代替遍历. 在写代码的时候,还需要注意代码的复用,这样写代码的效率会变高,不会把时间都浪费在写很多类似的逻辑上,比
2017-06-30 10:58:44
651
原创 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
992
原创 小项目_扫雷
扫雷小程序是c语言学习到一个阶段之后的简单应用,c语言初学者学习到数组之后就可以着手开始写这个小代码,代码不长,200+,且属于比较简单的逻辑,主要逻辑如下: 1. 构建棋盘 2. 构造雷盘,并在雷盘上随机放入一定量的的雷数 3. 用户规定一个位置,如果信息为0则继续展开,如果有雷的信息,则输出到棋盘上,不继续展开 4. 失败条件,踩到雷; 5. 胜利条件没有除了雷以外的空位置;#defi
2017-06-29 09:16:57
425
原创 poj ACM1031
原题翻译如: 在一些平坦的场地上有一个被围栏围住的区域。篱笆具有高度h,在平面投影中,它具有由其N个顶点的笛卡尔坐标(Xi,Yi)指定的封闭多边形线(无自相交)的形式。在坐标(0,0)的点上,一个灯站在场上。灯可以位于栅栏的外部或内部,但不在其侧面,如下图所示(图中细线所示的部分不被灯照亮): 栅栏是完全黑色的,即它既不反射也不扩散,也不能让光通过。研究和实验表明,以下法律表达了落在该栅栏任意照明
2017-06-22 14:08:07
395
原创 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
1180
原创 c++入门
1.命名空间 C++所有的标识符都存到一个std的命名空间内,只有调用这个命名空间才能使用标识符(using namespace std;); 当然,我们也可以使用自定义的命名空间去定义多个同名变量,函数,只需在调用的时候加上自定义命名空间的名称作用域限定符即可; 在实际使用中,对于小组开发的程序,命名空间起着重要的作用,使得小组成员写的同名函数可以正常使用。 2.C++基本的输入输出流(
2017-06-19 16:52:18
223
原创 单链表_进阶版
1.判断单链表是否带环?若带环,求环的长度?求环的入口点?并计算每个算法的时间复杂度&空间复杂度。 int CirculLength( ListNode*crossing) { ListNode *cur = crossing; int count = 1; while (cur == crossing&&count != 1) { cur = cur
2017-06-19 16:13:11
304
原创 c语言实现简单单链表
1.比较顺序表和链表的优缺点,说说他们正在什么场景下使用? 答: 对于顺序表,无论是动态还是静态,他们有都会死连续的存储空间,在读取时间效率上比较短,但在插入和删除时会比较麻烦,需要不断的遍历去找到尾节点。 对于链表,因为是链式存储。因此在需要的时候我们才在堆上进行开辟空间,链表对于插入删除比较简单,但是遍历需要多次跳转。 对于空间申请方式: 顺序表
2017-06-19 14:58:10
466
原创 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
382
原创 智能指针
RAII是一种规范,用来解决问题的思想,定义类来封装资源分配和释放,构造函数完成资源的分配和初始化,析构函数完成资源的清理 智能指针不是指针,是一个类,可以实现 1. 智能管理指针的释放 2. 能够像指针一样使用 3. 完成正常的赋值拷贝 是RAII的一种应用 auto_ptr:较早期的智能指针,在实现赋值运算符重载时,使用管理权的转移来实现,有缺陷;templete<classT> c
2017-05-08 23:06:01
236
原创 c++之多态
多态问题简单的概括就是“一个接口,多种方法”,程序在运行时才能决定调用的函数,它是面向对象编程领路的核心概念,字面意思就是多种状态。 c++多态是用过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖(或者称为重写),重写分为两种,直接重写成员虚函数和重写虚函数,只有重写了虚函数才算是体现了c++的多态性!!!而重载则是允许有多个同名函数,而这些函数的参数列表不同,允
2017-04-28 14:05:09
258
原创 c++之各种继承(单继承,多继承,菱形继承)
基本简介在c++语言中。,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承,从多个基类派生的继承称为多继承。继承可以使代码得到复用,子类还可以在父类的基础上添加功能 c++继承分为公有继承,私有继承,保护继承三类 单继承的定定义格式: class <派生类名>:<继承方式><基类名> { <派生类新定义成员> } 多继承的定定义格式: cla
2017-04-27 14:12:32
600
原创 c++默认的六个成员函数
默认的六个成员函数包括 构造函数 拷贝构造函数 析构函数 赋值运算符重载 取地址运算符(&)重载 const修饰的取地址运算符重载 构造函数 构造函数的命名必须和类名完全相同; 构造函数的功能主要用于在类的对象创建时定义初始化的状态。没有返回值,也不能用void修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择,而其他方法都有返回值,即使是void返回值。尽管方法体本身不会自动返回什么
2017-04-16 22:55:33
265
原创 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
1270
1
原创 c与c++区别之this指针的巧妙应用
this指针(一个永远指向调用对象首地址的指针)为什么要使用this指针在c++刚开始学习的过程中,通篇都在强调“类是对象的抽象,对象是类的示例”。那么当同一个类内的不同对象调用同一个函数体的时候,函数体将不同对象的数据进行整合计算,得到的值在返回到该对象的过程是如何实现的呢?在c语言中我们习惯使用一个指向结构体的指针实现,而在c++中,函数体会隐式的调用this指针,将对象的首地址传给函数体而实现
2017-03-12 18:18:40
609
原创 学习c的第一天
我是一名来自西安工业大学的一个普通的大二学生,为了提高自己,来到CSDN学习,分享学习心得体会,并且希望有机会结识编程大牛,让自己也能成为大牛而加油。为了成为大牛,是时候用机械键盘啪啪啪的敲代码而不是整天只是qwer或者wasd shift q e,卸载游戏,把过去最原始的编译器舍弃,换上最顺手的工具,接下来,就唯有勤奋可以与这些东西作伴,以后每天都会来论坛上看大牛来给像我们这样的小白解决问题,看
2016-11-25 15:10:42
247
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人