- 博客(143)
- 问答 (1)
- 收藏
- 关注

原创 类的封装与使用
1.类的访问控制关键字public和private,它们描述了对类成文的访问控制。使用类对象的程序都可以直接访问公有部分,但只能通过公有成员函数访问对象的私有成员。因此,公有成员函数是程序和对象的私有成员之间的桥梁,提供了对象和程序之间的接口。访问程序直接访问数据被称为数据隐藏。C++还提供了第三个访问控制关键字protected,它与类继承有关。2.类的封装2
2018-01-07 18:28:08
8847

原创 TCP/IP 层次
TCP/IP协议族是一个四层协议系统,自底而上是数据链路层、网络层、传输层和应用层。上层协议使用下层协议提供的辅助。1.数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个统一的接口。2.网络层实现数据包的选路和转发。网络层的任务就是选择中间节点(路由器),以确定两台主机之间
2017-12-10 18:17:27
3760

原创 xshell脚本
Xshell 常见脚本编译细节问题 #! /bin/bash 指令下1.关于 test命令后面空格 2.if语句后面 then前的分号 调试有时不可省略 3.参数分隔的空格问题不可忽略!不可缺少!4.将.txt文件修改成.doc类型时 只能提取文件名 通过mv命令修改文件后缀.doc 1、编写一个名为iffile程序,它执行时判断/bin目录下date文件是否存在?#!
2017-11-08 19:33:43
12324
原创 shell脚本
//获取系统时间NOWTIME=`date "+%Y-%m-%d %H:%M:%S"`//获取进程物理内存VMRSS=`cat /proc/$PID_AVA/status | grep VmRSS | awk '{print $2$3}'`//获取想要文件的大小file_size=`ls -al $FILE | awk '{print $5}'`
2021-03-18 10:34:30
157
原创 Makefile语法
Makefile语法ifeq ($(变量), $(findstring $(变量), 枚举变量数值空格间隔))ifeq ($(BOARD), $(findstring $(BOARD), a b c))ifeqelseendif
2021-03-18 09:38:49
212
原创 windows下安装Jupyter Notebook的安装和使用
下载python3 并安装python -m pip install --upgrade pip换源pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/pip install ipythonpip install jupyterjupyter notebook
2021-01-29 14:29:45
251
原创 n阶奇数魔方
#include <stdio.h>#include <string.h>void rubikCube(int n) { int cube[n][n],k,i,j; for (i=0; i<n; i++) { //初始化数组赋0值 for (j=0; j<n; j++) { c...
2019-05-23 09:17:55
320
原创 字典_嵌套
有时需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套包含字典的列表player1 = {'color': 'green', 'points': 5}player2 = {'color': 'yellow', 'points': 10}player3 = {'color': 'red', 'points': 15}players = [player1, play...
2018-11-19 15:37:49
431
原创 遍历字典中的所有键
一个Python字典可能包含几个或者数百万个键-值对,Python支持对字典遍历遍历所有的键-值对:使用key键、value值对和items()的for循环遍历字典 for k, v in user.items()user = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi', ...
2018-11-19 14:56:15
9270
原创 Python_字典
在Python中,字典是一系列键-值对。每个键都有一个值相关联,可以使用键来访问相关的值。与键相关联的可以是数字、字符串、列表乃至字典。字典用放在花括号{}中的一些列键-值对表示,如例alien_0 = {'color': 'green', 'points': 5}键-值对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用冒号分隔,而键-值对之间用逗号分隔。...
2018-11-15 19:49:57
175
原创 python_遍历整个列表
for Python中也可以使用for循环,假设有一个魔术师名单,需要打印所有的名字,可以定义一个列表,读取一个名字存储在变量magician中,循环打印magicians = ['alice', 'david', 'carolina']for magician in magicians: print(magician)out:alicedavidcarolina...
2018-11-14 09:37:37
24033
原创 platform设备驱动
Linux2.6以后的设备中,需关心总线、设备和驱动这三个实体,总线将设备和驱动绑定。系统每注册一个设备的时候,都会寻找适配的驱动,相反一样,匹配由总线完成虚拟总线设备struct platform_device { const char * name; //设备名称 int id; struct device dev; ...
2018-09-12 16:44:10
358
原创 字符设备驱动结构
在Linux内核中,使用cdev结构体描述一个字符设备,cdev结构体的定义如下struct cdev{ //内嵌的kobject对象 struct kobject kobj; //所属模块 struct module *owner; //文件操作描述符 struct file_operations *ops; //与cdev 对应的...
2018-09-06 16:49:56
283
原创 Linux设备驱动-信号的接收
用户程序中,为了捕获信号,可以使用signal()函数设置相应的处理函数void (*signal(int signum,void(*handler))(int)))(int);如果signal调用成功,它返回一个绑定的处理函数最后一次的处理结果值,失败返回SIG_ERR使用信号实现异步通知的程序如下:#include <sys/types.h>#include &...
2018-09-06 10:15:20
775
原创 设备驱动程序简介
内核功能划分:1.进程管理进程管理功能负责创建和销毁进程,并处理它们和外部世界之间的连接。概括来说,内核进程管理活动就是在单个或多个CPU上实现了多个进程的抽象。2.内存管理内核在有限的可用资源之上为每个进程都创建了一个虚拟地址空间。内核的不同部分在和内存管理子系统交互时使用一组函数调用。3.文件系统Unix中几乎所有的对象等价于文件。Linux支持多种文件系统类型,也就是在无力介质上组织数据的不...
2018-06-29 13:24:11
1388
原创 Python入门第二天
合并(拼接)字符串#字符串的拼接first_name = "ada"last_name = "lovelace"full_name = first_name + " " + last_nameprint(full_name)print("Hello, " + full_name.title() + "!")message = "Hello, " + full_name.title() +
2018-02-28 12:12:28
513
原创 python入门第一天
关于python 这款比较火热的胶水语言 我开始了新年的征程。变量的命名与使用变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可以将变量命名为message_1,但不能将其命名为1_messag。变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message 会发生错误。不要将Pyt
2018-02-24 10:11:59
205
原创 指针赋值,加减,比较
#include <stdio.h>int main(){ char a[] = "hello, world"; char *ptr = a; printf("%c\n",*(ptr+4)); printf("%c\n",ptr[4]); printf("%c\n",a[4]); printf("%c\n",*(a+4)); *(ptr+4) +=
2018-02-07 16:19:22
851
原创 复杂指针的声明
1.int a; 一个整型数 2.int *a; 一个指向整型数的指针 3.int **a; 一个指向指针的指针,它指向的指针是指向一个整型数的 4.int a[10]; 一个有10个整型数的数组 5.int *a[10]; 一个有10个指针的数组,每个指针是指向对应整型数的 6.int (*a)[10]; 一个指向有10个整型数数组的指针 7.int (*a)(
2018-02-07 15:35:11
235
原创 关于引用和指针
首先最近复习了一下C++中引用的概念。引用在C++中的内部实现是一个常指针。Type& name <–> Type* const name。C++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占用的空间大小与指针相同从使用的角度,引用会让人觉得只是一个别名,其实有自己的存储空间。这是C++为了实用性而做出的细节隐藏。谈一谈指针和引用的区别。 1.初始化要求不同。引用在创建的同时必须初始
2018-02-02 23:05:45
337
原创 面试题-旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组中最小的元素。例如:数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小元素为 1 。直接反应出来的是把所有数遍历一边,找出最小的数。但本题一定有特殊性,因为分成了两个递增的子数组。那么,为何不利用头尾指针采取两头往中间的临界值遍历,这种方法大大降低了时
2018-02-01 10:03:21
244
原创 面试题-利用指针引用交换字符串
#include <iostream>#include <string>using namespace std;void swap(char *&m,char *&n) { char *temp; temp = m; m = n; n = temp;}int main(){ char *x ="Hello"; char *y ="What's
2018-01-31 23:07:42
5848
原创 面试题-剑指offer-两个队列实现栈
#include #include using namespace std;template class MyStack{public: MyStack(); ~MyStack(); void MyPush(const T& value); T MyPop();private: queue mq1; queue mq2;};template MyStack::
2018-01-29 23:38:51
161
原创 面试题-剑指offer-两个栈实现队列
#include #include #include using namespace std;//模板类可以不局限一种数据类型 template class MyQueue{public: MyQueue();//默认构造 ~MyQueue();//默认析构 void appendTail(const T& node);//栈实现队列入队 T deleteHead()
2018-01-29 22:34:57
170
原创 面试题-变量引用
#include using namespace std;int main(){ int a = 1, b = 2; int &c; int &d = a; &d = b; int *p; *p = 5; return 0;}1.第9行中,编译错误。声明了一个引用类型的变量c,但是没有初始化。这里出现编译错误,因为引用类型的变量在声明的
2018-01-29 21:38:11
223
原创 C++ 通讯录-改
#ifndef _ADDRESS_H#define _ADDRESS_H#include #include #include using namespace std;class book{public: book();//默认无参构造 void AddIn(); void AddId(); void AddName(); void AddMobile(); voi
2018-01-29 21:18:15
592
原创 基数排序-改
#include #include int get_Max(int *a,int len){ int max = a[0],i; for(i=1;i<len;i++) { if(a[i]>max) max=a[i]; } return max;}void Radixing(int *a,int exp,int len){ int i; int *temp=(i
2018-01-28 22:13:38
219
原创 关于宏和内联函数
宏:1.在C程序中,可以用宏代码提高执行效率。宏代码本身不是函数,但是用起来像函数。编译预处理器用拷贝宏代码的方式取代函数调用,省去了参数压栈、生成汇编语言最大的缺点就是容易出错,预处理器在拷贝宏代码时常常产生意想不到的边际效应。#define Max(a,b) (a)>(b) ? (a):(b)result = Max(i,j)+2;//扩展为result = (i)>(j):(i):(j)
2018-01-28 20:01:26
402
原创 面试题-联合体的大小
联合体的大小取决于它所有的成员中占用空间最大的一个成员的大小。例1#include using namespace std;//#pragma pack(2) pragma pack(x)可以改变编译器的对齐方式 union u1{ double a; int b;};union u2{ char a[13]; int b;
2018-01-28 19:19:59
2576
原创 面试题中C++中const和static
const(1)const用来定义常量:const定义的常量编译器可以对其进行数据静态类型安全检查。(2)const修饰函数形式参数:当输入参数为用户自定义类型和抽象数据类型时,应该将“值传递”改为“const&传递”,可以提高效率。比较下面两段代码:1 void fun(A a);2 void fun(A const &a); 第一个函数效率低。函数体内产生A类型
2018-01-26 19:51:42
492
原创 面试题-编写程序输出2的1000次方
#include int main() { int a[1000] = {0}; //先定义一个足够大的数组 int i,j,k; a[0] = 1; for(i=0; i12; i++) //2的1000次方,所以执行1000次 { for(j=0; j12; j++) //
2018-01-26 19:13:50
1404
原创 经典面试题-颠倒字符串单词顺序不变
编写一个C函数,将”I am from Shanghai”倒置为”shanghai from am i”,及将橘子中的单词位置倒置,而不改变单词内部结构。#include #include int Rerverse(char str[],int i)//递归算法 找到'\0'出口 返回一个0 { int k; char ch =str[i]; if(ch==
2018-01-26 15:07:54
869
原创 面试题-说明const与#define的特点与区别
说明const和#define的特点及区别我们首先要认识到源程序文件(file.c)到生成可执行文件(file.exe)有四个阶段,预处理、编译、汇编、链接1.编译器处理方式不同#define是在预处理阶段const是在编译阶段运行使用//这边补充一点预处理器根据以#开头的命令,修改原始的程序。比如我们常见的#include 命令告诉处理器读取系统头文件st
2018-01-25 21:20:31
603
原创 Mysql第一天
Mysql今天学习了Mysql一些基础知识,所以整理一些有用的知识点。MySQL为关系型数据库,这种所谓的“关系型”可以理解为表格的概念,一个关系型数据库由一个或数个表格组成,如图所示的一个表格:表头(header):每一列的名称;列(row):具有相同数据类型的数据的集合;行(col):每一行用来描述某个人/物的具体信息;值(value):行的具体信息,每
2018-01-25 19:26:06
169
原创 面试题-替换空格
题目:请实现一个函数,把字符串中的每个空格替成“%20”。例如输入“we are happy.”,则输出“we%20are%20happy.”。基本思路:先遍历一遍字符串统计字符串中空格的个数并计算出替换之后的字符串的总长度,每替换一个空格,长度增加2,因此替换后字符串的长度对于原来的长度加上空格个数的2倍。如果从头到尾扫描字符串,遇到空格就做替换,必须每次都把空格后面所有的字符都向后
2018-01-24 20:18:29
190
转载 char str[]与char *str的区别
转载自 http://blog.youkuaiyun.com/wangluotong00/article/details/39367709今天做题的时候遇到一个问题,如何实现一个函数返回一个指针,返回一个整型值很简单,因为“C语言是按值传递的”,而想要返回一个指针,比如char型的指针,然后想在主调函数中使用被调函数的返回指针,分析了一下关于char str[]和char *str的区别下
2018-01-24 19:36:02
16366
原创 单例模式
单例模式单例模式的作用:保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。单例模式的构造图为什么需要单例模式?1.在多个线程之间,比如初始化一次socket资源2.在整个程序空间使用全局变量,共享资源3.大规模系统中,为了性能的考虑,需要节省对象的创建时间。实现单例模式常用步骤1.构造函数私有化
2018-01-24 16:32:49
126
原创 数据结构-链表深入剖析(带图)
一、定义:链表是线性表的链接存储表示二、分类:单向链表、静态链表、双向链表、循环链表三、特点:每个元素由数据域和指针域构成 1.结点可以连续,也可以不连续存储;//因为每个结点指针域存储了下一个结点的地址,因此地址不同,指向下个结点也都不同 2.结点的逻辑顺序与物理顺序可以不一致; //顺序不固定性 3.表的容量可以不断变大(顺序表是固定的)
2018-01-24 13:23:24
707
空空如也
jira配置管理员没权限
2022-03-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人