自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程基本概念

基本概念课本概念:进程是执行程序的动态过程(程序是一组静态指令,程序是进程运行的静态文本)内核概念:进程是担当系统分配资源(如CPU时间、内存)的实体PCB:进程信息被存放在一个叫做进程控制块的数据结构中,即PCB,可将其理解为进程属性的集合;在Linux下的PCB称为task_structtask_struct是Linux的一种数据结构,它会被装载到Linux内存(RAM)中,用来存...

2018-05-20 17:21:25 257

原创 C++实现动态顺序表(vector)

vector是连续存储结构,支持随机的高效的随机和在尾部进行插入、删除操作,其它位置的插入、删除操作相对来说效率较低。 vector相当于一个数组,但它的数组空间大小需要写一程序来实现。 它的内存分配原理大概可分为下面几步: 1)首先分配一块内存空间进行存储; 2)当所需存储的数据超过分配的空间时,再重新分配一块空间; 3)将旧元素复制到新空间; 4)释放旧空间。实现代码如下:...

2018-05-15 20:45:51 294

原创 C++实现双向链表(List)

list是C++容器类中的“顺序存储结构”所包含的一种结构。list是非连续存储结构,具有双链表结构,支持前向/后向遍历,且支持高效的随机删除/插入。 实现代码如下:**list.h**#pragma once#include<stdio.h>#include<assert.h>#include<iostream>using namesp...

2018-05-13 19:59:00 1455

原创 C++ 继承&隐藏&菱形继承

一、继承 继承是c++中的一种机制,是面向对象复用的重要手段。通过继承机制,可以利用已有的类来定义新的类,新的类不仅拥有新的成员,同时也拥有旧的成员。把已存在的类称为父类或基类,新定义的类称为子类或派生类,继承是类之间的关系建模。class Person{ //Person是父类public: Person(const string& name) ...

2018-05-05 20:26:49 821

原创 引用计数写实拷贝

首先要了解的是计数写实拷贝是在浅拷贝的基础上进行的。 什么是浅拷贝?用一张图来解释 计数写实拷贝是通过设置计数器Pcount来解决: Pcount的初始值为0,s1指向空间时Pcount+1,即Pcount=1,s2拷贝s1时,Pcount再+1,即Pcount=2;进行析构时,- -Pcount,当Pcount的值为0时再进行析构。这样解决了浅拷贝中重复析构同一空间的问题。 实现计数...

2018-04-20 19:21:01 167

原创 String类 深浅拷贝的传统写法和现代写法

浅拷贝也称值拷贝,在进行赋值时增加了一个指针,且该指针与原指针指向了同一内存空间,那释放这一空间,会导致其他对象所使用的空间也被释放,即程序会调用两次析构函数,同一块空间会被析构两次,结果是程序会出错、崩溃。 代码如下:#define _CRT_SECURE_NO_WARNINGS 1#include <iostream>using namespace std;//Str...

2018-04-19 15:01:07 225

原创 单链表基础操作

单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素,链表中的数据是以结点来表示的。 单链表的最基本操作包括:增、删、查、改。 接下来是在单链表中实现的操作: 1.初始化链表: 将头结点指向空void LinkListInit(LinkNode** head);2.尾插一个元素到链表中: a)若为空链表,直接将数据插入头结点 b)非空链表,则找到一个结点,在其

2018-04-14 22:24:54 383

原创 c++ 动态内存管理 new/delete

c语言是通过使用malloc、calloc、realloc、free进行内存管理 malloc:直接开辟空间 calloc:开辟空间时会进行初始化 realloc:它的函数原型为”void *realloc(void *ptr,size_t size)”,当参数 *ptr为空时,realloc等价于malloc;realloc可用于扩容,需要重新开空间。 c++中使用new、delete来...

2018-04-09 15:04:15 146

原创 日期类(c++)

该函数的功能是实现日期的相关操作,包括:1.计算一个日期加上任一天数后的日期;2.计算一个日期减去任一天数后的日期;3.计算俩日期之间相差的天数;4.对日期加1,包括前置++和后置++;5.对日期减1,包括前置--和后置--。代码如下:#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>#include<assert.h&gt...

2018-03-28 21:47:31 1297

原创 c++:const&内联&友元&static

1.查看目录下所有子目录与文件:ls,格式:ls 选项 目录或文件。 选项: ls -a 目录(列出目录下所有文件) ls -d 目录(将目录像文件一样展示,不是显示其下的文件) ls -l 目录(显示目录或文件的详细信息) ls -t 目录(目录按时间排序) ls -r 目录(反向排序) ls -s(按各目录容量大小显示) ls -R(显示目录下所有内容);

2018-03-24 18:03:30 333

原创 c++ 引用

引用就是引用某一变量的别名,其声明格式为:类型& 引用变量名=已定义的变量名。int& a=b//a是b的别名1.引用的特点有: 1)一个变量可取多个别名; 2)引用必须初始化; 3)引用只能在初始化时使用一次,不能再成为其他变量的别名; 4)引用并不是定义了一个新的变量,它与目标变量指向同一内存空间。void test(){int a=2;int& b=a;a=3;b=4;in

2018-03-17 19:15:15 115

原创 C++入门

C++是在C语言基础上进行开发的一种面向对象的编程语言。1983年,由贝尔实验室在C语言基础上推出了C++,C++应用广泛,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。 C++的语言主要特点有支持数据封装、隐藏,支持继承和重用,支持多态性。 接下来就简单梳理一些C++的基础知识点: 1.命名空间 一

2018-03-10 20:07:58 138

原创 C语言通讯录

实现的功能有: 1.初始化通讯录; 2. 通讯录中增加条目; 3. 删除通讯录中的指定条目; 4. 按指定规则查找通讯录中特定条目; 5. 打印通讯录中的所有信息; 6. 修改通讯录的指定条目; 7. 销毁通讯录; 8. 将通讯录内容保存在文件; 9. 将文件中的内容加载回内存。**Addr_Book.h**#pragma once#include <stddef.h>#

2018-02-27 12:08:49 980

原创 数据结构——双向链表

带头节点的双向链表DLinkList.h#pragma once#include <stdio.h>#include <string.h>#include <stdlib.h>typedef int DLinkType;typedef struct DLinkNode { DLinkType data; struct DLinkNode* next; struct D

2018-02-26 22:42:34 165

原创 浅谈 位段?枚举?联合?

一、位段 位段是C语言中用于在一个结构体(或联合体)内以位为单位来指定其成员所占的内存长度。在计算机存储中,一个字节是由8个位组成的,有些时候定义变量采用位段的形式,可以有效地节省空间,但是位段存在跨平台的问题,不同的机器位,其使用也有不同。 定义一个位段结构体的方法和定义结构体是类似的,区别在于: a)位段的类型只能是int、unsigned int、signed int或char类型;

2017-12-26 13:01:10 180

原创 实现顺序表多种操作(removeall、冒泡排序等)

在上一篇实现顺序表基本操作的基础上,继续实现下面几种操作:1.删除顺序表中所有的指定的值 void seqlistRemoveAll(seqlist* seq, seqType to_delete); 2.获取顺序表元素个数 size_t seqlistSize(seqlist* seq); 3.判定顺序表是否为空 int seqlistEmpty(seqlist* seq); 4.

2017-12-21 15:56:02 452

原创 实现基于静态数组的顺序表

实现的基本操作有: 1. 初始化 2. 尾插 3. 尾删 4. 头插 5. 头删 6.查找任意元素 7. 读任意位置元素 8. 修改任意位置元素 9. 查找指定元素值的下标 10. 在任意位置插入元素 11.删除指定位置的元素 12.删除任意元素 13.打印数据头文件seqlist.h:#pragma once #include<stdio.h>#inc

2017-12-17 17:41:34 209

原创 结构体的定义声明、内存对齐

一、首先从结构体说起 结构体是若干值的集合,结构的成员可以是标量、数组、指针,甚至是其他结构体,这些值被称为成员变量,且每个成员可以是不同类型; 结构体声明如下:struct tag//tag是结构体标签,可以有,可以没有{ member-list; //成员列表 }variable-list;//结构体变量,可以有多个

2017-12-03 21:12:40 394

原创 注释转换(c语言注释转为c++注释)

在我们的C/C++的项⽬目当中会有C、C++两种注释⻛风格,有时为了方便,会将注释全部转为同一种,我这里做的是将c语言风格注释转为c++注释; c注释为:/int i=1;/ c++注释为://int i=1; 因为在注释转换中有很多情况需要考虑周全,所以可通过下图的梳理来一步步实现代码 接下来就是代码部分,首先是头文件“convert.h”#ifndef __CONVERT_H__#

2017-12-03 15:06:46 281

原创 五子棋实现(拖延症患者)

拖延症重度患者………… 现在才来写这篇五子棋的博客………. 其实只要自己在草稿纸上画出一个简易的五子棋棋盘,再一步一步地从如何下棋、怎么判断输赢等方面理清逻辑就可以写出代码了。 分为玩家走和电脑走,电脑走的位置是由随机数”rand()”产生;判断输赢部分对赢的情况有哪些要仔细,避免漏写; 头文件: game.h#ifndef __GAME_H__#define __GAME_H__ #in

2017-11-29 19:09:58 245

原创 C语言操作符概括

C语言操作符是说明特定操作的符号,是构造C语言表达式的工具,除基本的算术、逻辑、关系运算符之外,还有一些较为特殊的操作符,如位操作符等。

2017-10-19 11:30:34 275

原创 初来

我,一名大三的计算机专业学生,两年前稀里糊涂进入了计算机院系,然后稀里糊涂过了大一、大二,现在一晃到了大三,不敢也不能再继续稀里糊涂下去。不能说我热爱编程,但我在试着去爱上它。现在的我在编程这方面真是一张白纸… 但我相信任何东西都“贵在坚持”且“勤能补拙”,不知道以后的我会是什么样,但至少现在的我得在这张白纸上尽力去描绘它。个人认为学习最重要的还是自己的自觉性和主动性,抛掉自己的惰性,

2017-09-27 18:27:25 161

空空如也

空空如也

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

TA关注的人

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