- 博客(36)
- 收藏
- 关注
原创 linux:进程
计算机硬件体系结构:冯诺依曼体系机构 五大硬件单元:输入,输出,存储器,运算器,控制器 硬件结构决定软件行为:数据流向 所有的设备围绕存储器工作操作系统:内核+应用 一个搞管理的软件,为了让计算机更加方便使用 库函数和系统调用接口是上下级的调用关系,库函数封装了系统调用接口进程概念:运行中的程序 ...
2019-07-23 21:01:57
163
原创 C++:多态
概念多态就是指在完成具体的行为时,不同的对象会产生不同的结果。就像执行一个函数时,传入两个不同的对象,产生的结果不同。虚函数在继承的时候,可以在继承方式前加virtual关键字来声明函数是虚拟继承。虚函数就是在类的函数成员前加virtual关键字。虚函数是在编译阶段实现的,一般存在于代码段。虚函数的重写(覆盖):子类中有一个虚函数和父类中虚函数完全相同,即返回值,函数名,函...
2019-05-22 19:05:00
120
原创 leetcode:
118.给定一个非负整数numRows,生成杨辉三角的前numRows行class Solution {public: vector<vector<int>> generate(int numRows) { vector<vector<int>> triangle(numRows,vector...
2019-05-19 09:24:11
105
原创 linux:网络基础(1)
基础概念网络通信协议:网络中相同的格式约定网络通信标准协议:统一的协议标准IP地址:唯一定位网络中的主机,定位起点到终点port端口:识别一台主机的进程mac地址:定位相邻的设备协议分层对网络通信的整个过程进行了分层,每一层用什么协议,实现什么功能,应该提供什么服务,应该提供什么接口,方便形成标准,便于使用OSI七层参考模型 TCP/IP五层模型 功...
2019-05-19 09:22:10
124
原创 特殊类类型创建
不能在堆上创建的类不能在栈上创建的类不能被继承的类构造函数私有化,则子类不能调用父类的构造函数,实现类不能被继承class NonInherit{public: static NonInherit instance() { return NonInherit(); }private: NonInherit() ...
2019-05-18 16:05:14
180
原创 C++: 继承
概念 继承就是可以使代码复用的一种手段。在原有类的基础上增加成员,增加功能形成新类。而形成的新类也叫派生类。又或者称原有类为基类或称父类,新类为子类。继承后,父类的成员(成员函数+成员变量)都会变成子类的一部分。定义class 派生类::派生方式 基类(默认继承方式为private){};派生方式分为:public继承,private继承,protected继承(与类...
2019-05-17 23:22:27
185
原创 设计模式:分类及个别实现
设计模式分为23种创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。...
2019-05-15 22:45:34
129
原创 C++ 基础:C++11
auto关键字:类型占位符使用auto定义变量时必须对其进行初始化,在编译阶段编译器需要根据初始化表达式来推导auto的实际类型。auto并非是一种“类型”的声明,而是一个类型声明时的“占位符”,编译器在编译期会将auto替换为变量实际的类型。使用场景:用auto声明指针类型时,用auto和auto*没有任何区别 当在同一行声明多个变量时,这些变量必须是相同的类型,否则编译器将会...
2019-05-11 18:37:28
140
原创 C++基础:内联函数
概念:用inline修饰的函数叫内联函数编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销,内联函数提升程序运行的效率inline int Add(int a,int b){ return a+b;}int main(){ int ret=Add; //内部汇编实现与函数相同 return 0;}特性:声明定义放到一起...
2019-05-11 17:04:12
143
原创 C++ 基础:引用
概念:引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间类型& 引用变量名(对象名) = 引用实体int a=0;int& b=a;引用特性:引用在定义时必须初始化 一个变量可以有多个引用 引用实体不能变更 常量的引用是常引用int main(){ int a = ...
2019-05-11 16:35:04
136
原创 C++基础:函数重载&名字修饰&extern "C"
函数重载:在同一作用域下,可以声明几个同名函数,但是参数列表必须不同 可以用来处理功能类似,但是传入参数类型不同的问题#include <iostream>int Add(int a,int b){ return a+b;}double Add(double a,double b){ return a+b;}int main(){ ...
2019-05-11 10:44:14
236
原创 C++基础: 缺省参数
缺省参数在定义或声明一个函数时,给函数参数一个默认值。 当调用该函数时如果没有传入参数,则使用参数的默认值 当调用该函数时传入了参数,则使用传入的参数#include <iostream>int Add(int a=1,int b=2){ return 0;}int main(){ int a=0; int b=0; int ...
2019-05-11 09:58:32
107
原创 C++基础:命名空间(namespace)
命名空间的作用: 在C/C++中,变量、函数和类都大量存在,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染。 在多人协作的项目中,可以防止不同人编写类库发生命名冲突。 本质上,命名空间定义了一个作用域。stdstd是C++标准库统一使用的命名空间的名称,C++标...
2019-05-11 09:26:16
204
原创 数据结构:顺序表,链表各自概念及优缺点
顺序表与链表都是线性表(n个具有相同特性的数据元素形成的有限序列)。顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表又分为静态顺序表和动态顺序表,静态顺序表使用定长数组来存储数据,但是如果一旦存储超过定长,就很难处理,所以把静态顺序表的定长数组改为动态开辟的数组。这个是我自己写的简单顺序表功能实现:https...
2019-03-18 13:47:38
2408
原创 数据结构:无头单向非循环链表的简单功能运用
slist.h对无头单向非循环链表功能运用函数的声明其中对函数实参的检查都是运用assert函数来进行实现#pragma oncetypedef int SLTDataType;typedef struct slistNode{ struct slistNode* next; SLTDataType data;}slistNode;typedef struct fi...
2018-12-03 17:34:13
216
原创 数据结构:顺序表简单功能实现
头文件Seqlist.h 包含了顺序表的增删查改以及冒泡排序和二分法及一些简单功能实现#pragma once#include <stdlib.h>typedef int SLDataType;typedef struct SeqList{ SLDataType* array; // 指向动态开辟的数组 size_t size; // 有效数据个数 siz...
2018-12-02 20:43:57
393
原创 练习:两个小练习
1.一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。#include <stdio.h>#include <stdlib.h>#include <string.h>void Find_two(int* arr,int* pa,int* pb,int len){ for (int i = 0; i ...
2018-11-12 18:43:28
170
原创 练习:用递归写的几个练习
1.递归和非递归分别实现求第n个斐波那契数。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>//int Fib(int n){// if (n==1||n==2)// {// return 1;// }// else//...
2018-11-11 19:13:49
180
原创 练习:四个和位操作相关的练习
1.编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:25...
2018-11-02 23:41:17
150
原创 练习:简单的逻辑问题 杨辉三角
在两个判断中有真有假可以把所有判断相加,让它的结果等于真的个数1,5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。#define _CRT_SECURE_NO_WARNING...
2018-10-31 17:00:38
239
原创 C语言:操作符
操作符可以分很多的类,例如:算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用,函数调用和结构成员.这篇博客则是把每类操作符介绍一下.算术操作符: + - * / %常见的运算符号:加减乘除,常用于整数和浮点数整数/整数还是等于整数%,取余,操作数必须是整数移位操作符:<<...
2018-10-25 19:40:53
203
原创 练习:五子棋的随机C语言版本,以及网上找的完整版
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <Windows.h>#include <time.h>//#include "AL.h"#define ROW 15#define COL 15char str[ROW][COL...
2018-10-18 22:59:54
319
原创 C语言:'\0'的书写错误以及在字符串中的简单作用
在用递归写strlen函数时,感觉道理很简单(判断一下字符串最后一个字符'\0')这个程序就出了但是在我的程序中却出了错,我调试不出来错误,程序很短,肉眼看了好多遍,最后更是在网上找到代码,一步一步找.这就是我的代码:(错误代码)#include <stdio.h>#include <stdlib.h> int Strlen( char* str) {...
2018-10-18 22:47:44
641
原创 练习:数组个数随着元素个数的随机更改
问题:将数组A和和数组B中的内容进行交换。(数组一样大)在这道题中我很容易的写出来代码#include <stdio.h>#include <stdlib.h>int main(){ int arr1[5] = { 1 , 2 , 3 , 4 , 5 }; int arr2[5] = { 0 , 1 , 2 , 3 , 4 }; int tmp[5];...
2018-09-29 22:53:36
444
原创 练习:水仙花数练习输出及错误
求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。/*在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。例如153、370、371及407就是三...
2018-09-28 21:26:09
3048
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人