自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(32)
  • 收藏
  • 关注

原创 IPC实现机制(一)---pipe(匿名管道)

一.IPC简介: (1)概念: 每个进程各⾃有不同的⽤户地址空间,任何⼀个进程的全局变量在另⼀个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟⼀块缓冲区,进程1把数据从⽤户空间拷到内核缓 冲区,进程2再从内核缓冲区把数据读⾛,内核提供的这种机制称为进程间通信 (IPC,InterProcess Communication) (2)常用的进程间通信方式:传统的进程间

2017-05-31 00:49:23 2117 1

原创 c++函数重载机制实现原理

一、c++函数重载的定义:在同一作用域类,一组函数的函数名相同,参数列表不同(参数个数不同/参数类型不同),返回值可同可不同二、函数重载的作用:重载函数通常用来在同一个作用域内命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。三、函数重载是一种静态多态:(1)多态:用同一个东西表示不同的形态; (2)多态分为: 静态多态(编译时的多态) 动态

2017-05-30 00:48:58 9729 5

原创 Linux下IPC机制实现相关函数

一、因为linux下一切皆文件,所以先看linux下对文件I/O相关函数: 二、IPC管道机制相关函数: 三、IPC命名管道机制相关函数: 四、IPC消息队列机制相关函数:

2017-05-28 19:49:09 358

原创 c++实现单链表

一、用面向对象的思想,用c++语言实现单链表类(1)链表结点的定义typedef int DataType;struct ListNode{ ListNode(const DataType& x) :data(x) ,next(NULL) {} DataType data; ListNode* next;};(2)链表的成员变量

2017-05-28 13:36:06 1207

原创 c++模拟实现顺序表

一、用面向对象的思想模拟实现动态顺序表; 写一个顺序表类;该顺序表类的成员变量为:_sz记录顺序表实际储存的元素个数;_capacity记录顺序表的实际存储容量;_data为一个动态数组;储存元素; 二、该顺序表类的成员函数有 (1)类的默认成员数;SeqList()//构造SeqList(const SeqList& seqlist)//拷贝构造SeqList& operator=(Se

2017-05-26 21:40:19 415

原创 简单的string类的模拟实现

综述:c++标准库提供了一个字符串类型string ,该类型可以直接定义一个字符串对象,并且对字符串进行各种操作;以下是本人根据c++标准库中的string类,简单的模拟实现该类; 先看cpulspuls中string类的成员函数: 其中我只实现图中列出函数原型的几个成员函数: (1)实现之前先看看这写函数及其重载函数是什么意思: 测试代码

2017-05-25 13:18:50 534

转载 标准IO与文件IO 的区别

作者:王姗姗,华清远见嵌入式学院讲师。1.先来了解下什么是标准IO以及文件IO。标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性。标准IO库处理很多细节。例如缓存分配,以优化长度执行IO等。标准的IO提供了三种类型的缓存。(1)全缓存:当填满标准IO缓存后才进行实际的IO操作。 (2)行缓存:当输入或输出中遇到新行符时

2017-05-24 16:35:40 509

转载 从一个男人身上看出他的修养和抱负

从一个男人身上看出他的修养和抱负整天关注娱乐版的男人,你指望它有什么成就?整天玩游戏的男人、整体打麻将的男人,你指望它有什么成就么?不管喜不喜欢,这样的东西都是值得一读。 一、拥有自信和风度 男人到了二十几岁后,就要开始学着用心去经营自己了,它体现在自己的思想与涵养上。自信是一个男人最重要的品质,自信的男人就你像一只在暴风雨中战斗的海鸥。海鸥所要说的只有一句话“让暴风雨来的再猛烈些吧”,只因为

2017-05-22 00:48:57 634

原创 判断机器的大小端

一、概念: 大端模式(Big-endian): 是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中。 小端模式(Little-endian): 是指数据的低位保存在内存的低地址中,而数 据的高位保存在内存的高地址中。 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit

2017-05-21 20:15:23 236

原创 memmove和memcpy函数的区别及实现

一、memmove()和memcpy()函数的strcpy()函数的区别;(1)使用的类型不同,strcpy()函数只对字符串进行操作;memmove()和memcpy()函数对所有类型都适用,为内存拷贝; (2)strcpy()以’\0’为拷贝的结束条件;而memmove()和memcpy()函数则是以第三个参数num进行控制拷贝;二、函数说明:1.memcpy函数的功能是从源src所指的内存地

2017-05-21 01:37:18 2562 8

原创 链表面试题(十三)---求两个都不带环的链表相交的结点

一、结构体定义typedef int DataType;typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*P

2017-05-17 02:04:27 270

原创 链表面试题(十二)---判断两个都不带环的链表是否相交

一、结构体定义typedef int DataType;typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*P

2017-05-17 01:47:58 379

原创 链表面试题(十一)---求带环单链表 环的入口点

一、结构体定义typedef int DataType;typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*P

2017-05-17 01:37:18 307

原创 链表面试题(十)---求带环单链表的环的长度

一、结构体的定义typedef int DataType;typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*

2017-05-17 01:20:25 558

原创 链表面试题(九)---判断一个链表是否带环

一、结构体定义typedef int DataType;typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*P

2017-05-17 01:12:43 368

原创 链表面试题(八)---约瑟夫环

一、结构体定义typedef int DataType;typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*P

2017-05-17 01:00:45 222

原创 链表面试题(七)---合并两个有序链表

一、结构体的定义typedef int DataType;typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*

2017-05-17 00:49:33 370

原创 链表面试题(六)---删除单链表倒数第k个结点

一、结构体定义typedef int DataType;typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*P

2017-05-17 00:13:55 1221

原创 链表面试题(五)---寻找链表的倒数第k个结点O(N)

一、结构体定义:typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*PList;二、函数实现 思路:定义两个

2017-05-17 00:01:51 283

原创 链表面试题(四)---查找链表的中间节点

一、结构体定义:typedef int DataType;typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*

2017-05-16 23:42:34 523

原创 链表面试题(三)---当前结点前插入一个数据x

一、结构体定义typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*PList;二、代码实现: 思路:在当前结

2017-05-16 23:24:52 1064

原创 链表面试题(二)---链表逆序(链表反转)

一、结构体定义typedef int DataType;typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*P

2017-05-16 23:15:26 430 1

原创 链表面试题(一)---删除一个无头单链表的非尾结点

二、结点的定义typedef int DataType;typedef struct ListNode//定义结点{ DataType data; struct ListNode* next;}ListNode,*PListNode;typedef struct PList//定义一个成员是指向结点的指针的结构体{ PListNode PHead;}PList,*P

2017-05-16 22:45:37 343

原创 c语言变量的作用域,链接属性,储存类型&&static关键字

一、作用域:变量在程序的某个部分声明时,只能在程序的一定区域内才能访问,这个区域就成为作用域。 作用域分为四种: ①文件作用域②函数作用域③代码块作用域④原型作用域。 编译器通过变量声明的位置来确定作用域(1)文件作用域当变量在所有代码块之外声明时就在文件作用域中,文件作用域的范围是从变量声明处一直到文件的结束。但如果变量的声明在“.h”文件中,并且该“.h”文件被其他文件用#include

2017-05-16 19:39:15 387

原创 日期计算器

一、完成功能1.日期+/-天数=返回日期 2.日期-日期=返回天数 3.打印某年某月的本月日历; 二、功能分析见图: 三、源代码//完成功能//1.日期+/-天数=返回日期//2.日期-日期=返回天数//3.打印某年某月的本月日历;#include<iostream>using namespace std;class Date{friend ostream& operator

2017-05-15 12:21:45 5043

原创 数值得整数次方--模拟pow函数的功能

1.数值得正数次方 (1)当底数等于0且指数为负数时,错误; (2)当底数任意,指数分为大于等于0,和小于0 1)指数>=0 ,直接求值; 2)指数<0,先给指数取绝对值,然后按照指数为正求值,最后给结果求倒数代码:#include<iostream>using namespace std;double fun(double bash,unsigned int tmp);bool Z

2017-05-11 18:16:43 352

原创 位运算--求一个 数二进制中1的个数

1.五种位运算:(1)&(与)–有0则0;无0则1; (2)|(或)–有1则1,无1则0; (3)^(亦或)–相同为0,不同为1; (4)>>右移(最右边的位被抛弃) 正数,最左边添0;00001010>>3=00000001 负数,最左边添1;10001010>>3=11110001 (5)<<左移(最左边的位被抛弃)–最右边统一添0; (正数)000

2017-05-10 16:50:12 4609 1

原创 初始化列表

一:为什么使用初始化列表比较高效?答:因为在初始化列表中对成员变量初始化,是直接调用成员变量的拷贝构造函数对其初始化; 而在构造函数体内对成员变量初始化;是先在进入函数之前调用成员变量自身的默认构造函数,创建一个真正成员变量对象,然后在函数体内调用成员变量对象的赋值运算符重载函数,给对象赋值;代码:#include<iostream>using namespace std;class Time

2017-05-09 16:44:48 219

原创 复数类

复数类:(1)由于默认的拷贝构造函数以值拷贝的方式一个一个拷贝的,此处的复数类,用值拷贝不会出错,所以不写,直接用默认的成员函数; (2)赋值运算符重载也是用默认的成员函数; (3)注意使用传引用能使程序效率增强;在函数的形参处使用const 引用的方式,保护外来的对象不被修改; (4)注意传引用返回和传值返回;当函数要返回的 变量为函数内的临时变量时,这时用传值返回; 当函数要返回的变量不

2017-05-09 01:55:32 562

原创 在c++程序中调用被C编译器编译后的函数,为什么要使用extern “C”

c/c++函数调用约定:c/c++函数调用约定 一、原题: 二、详细说明: 现在,在一个工程中;有一个test.c文件;一个test1.cpp文件;//test.c#include<stdio.h>int Add(int a,int b){ return a+b;}(1)使用extern int Add(int,int);声明外部函数—–错误 //test1.cpp#inc

2017-05-04 22:13:32 7944

原创 复杂链表的复制

一、复杂链表 (1)结点 值域+next域+radom随机域 (2)链表图示 二、复杂链表复制 (1)步骤 1)给原来的每个结点创建一个新结点,将其连接在原来结点之后 2)给新创建的结点连接random域 3)分割新结点和原结点 (2)图示 三、代码实现#include<stdio.h>#include<stdlib.h>typedef struct Comple

2017-05-04 01:20:47 444

原创 单链表实现(C语言版,无头结点)

前言:单链表:它是一种链式储存的线性表,用一组地址任意的储存单元存放线性表的数据元素;称储存单元为一个结点;结点:值域+指针域 链表:二、代码实现(1)结点定义:typedef int DataType;typedef struct ListNode{ struct ListNode* next; DataType data;}Node,*PNode;typedef stru

2017-05-02 02:42:04 6363

空空如也

空空如也

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

TA关注的人

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