自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 003.数据结构_树

二叉树的创建与递归遍历BinaryTree.h//// Created by zhangzhiqiang on 2020/7/6.//#ifndef DATASTRUCTURE_BINARYTREE_H#define DATASTRUCTURE_BINARYTREE_H#include <iostream>using namespace std;//二叉链表的结点typedef struct BinTreeNode { BinTreeNode *leftC

2022-03-17 18:25:16 1481

原创 从零学习C++第九章:输入输出

9.1 概述C++中,输入/输出(input/output)是一种基于字节流(stream)的操作。 以过程式的方式进行输入/输出通过C语言函数库中的输入/输出函数实现;以面向对象的方式进行输入/输出通过C++的I/O类库实现。9.2 面向控制台的输入/输出面向控制台的输入/输出:从计算机系统的标准输入设备(键盘)输入程序所需要的数据以及把程序的计算结果或错误信息输出到计算机系统的标准...

2020-05-06 19:08:21 660

原创 从零学习C++第十章:异常处理

10.1 概述10.1.1 什么是异常程序的错误包括:语法错误、逻辑错误和运行异常 语法错误:程序书写不符合语言的语法规则,由编译程序发现 逻辑错误(语义错误):程序没有完成预期的功能,通过对程序进行静态分析和动态测试来发现 运行异常(exception):程序运行错误 程序异常往往是没有考虑到程序运行环境的一些特殊情况: 关联文件时,文件不存在 动态分配空间,内存不...

2020-05-06 19:08:13 354

原创 从零学习C++第八章:类属类型(泛型)——模板

8.1 概述类属性(generics):一个程序实体能对多种类型的数据进行操作或描述的特性。 类属函数:包含类属性的程序实体,一个函数能对不同类型的数据(参数)完成相同的操作。 类属类:包含类属性的程序实体,一个类的成员类型可变,从而可以用它描述不同种类的对象。 类属程序设计:基于具有类属性的程序实体进行程序设计的技术称为类属程序设计(或泛型程序设计,generic programmin...

2020-05-05 18:45:23 848

原创 从零学习C++第七章:继承(类的复用)——派生类

7.1 概述7.1.1 类之间的继承关系——基类与派生类基类(base class):被继承类 派生类(derived class):继承后得到的类C++中,继承分为单继承和多继承7.1.2 继承的作用支持软件复用 对事物按层次进行分类 一般与特殊的关系(is-a-kind-of) 对概念进行组合 支持软件的增量开发7.2 单继承7.2.1 单继承...

2020-05-05 18:39:39 685

原创 从零学习C++第六章:数据抽象——对象与类

6.1 概述6.1.1 数据抽象与封装数据抽象(data abstraction):是对数据的一种描述方式,使得数据的使用者只需要知道对数据所能实施的操作,以及这些操作之间的关系,而不必知道数据的具体表示。 数据封装(data encapsulation):是指把数据和对数据的操作作为一个整体定义,并通过封装机制把数据的具体表示对使用者隐藏起来,数据使用者只能通过封装体提供的接口对数据进...

2020-05-05 18:31:56 382

原创 从零学习C++第五章:复合数据的描述——构造数据类型(二)

5.5 指针类型——内存地址的描述在C++中,用指针类型来描述内存地址,通过指针操作来实现与内存地址有关的程序功能5.5.1 指针类型的定义指针类型(pointer type)是一种用户自定义的数据类型,值集是由一些指针构成的集合,是内存地址的抽象表示。 指针与无符号整数的联系与区别: 形式:指针属于无符号整数 概念: 一个指针对应某个内存单元,关联到某个变量或函数;...

2020-02-11 20:07:36 356

原创 从零学习C++第五章:复合数据的描述——构造数据类型(一)

5.1 枚举类型——自定义值集的数据描述如果用基本数据类型来表示一些形式与之相同而性质不同的数据,会造成程序易读性下降,正确性难以保证。为解决该问题,设计者可以使用自己定义值集的数据类型——枚举类型,枚举类型的操作受一定的约束。5.1.1 枚举类型的举例枚举类型(enumeration type)是用户自定义的一种简单数据类型,在定义一个枚举类型时,需要列出其值集中的每一个值。 ...

2020-02-11 19:49:55 368

原创 从零学习C++第四章:过程抽象——函数

4.1 概述4.1.1 功能分解与复合功能分解与功能复合是程序设计的两种手段 功能分解:自顶向下(top-down)、逐步精华(step-wise)的设计过程。 功能复合:自顶向上(bottom-up)的设计过程。 采用过程分解和复合的手段进行程序设计往往要基于一种抽象机制——过程抽象(procedural abstraction)或功能抽象(functional abstra...

2020-01-14 16:07:15 818

原创 001.编译原理_引论

1.1 语言处理器一个集成的软件开发环境,其中包括很多种类的语言处理器,比如编译器、解释器、汇编器、连接器、加载器、调试器以及程序概要提取工具。预处理器(preprocessor)除了编译器外,创建一个可执行的目标程序还需要一些其他程序。一个程序可能被分割成为多个模块,并存放独立的文件中。 把源程序聚合在一起的任务由预处理器的程序独立完成。预处理器还负责把那些称为宏的缩写形式...

2020-01-11 17:38:15 716

原创 从零学习C++第三章:程序的流程控制(算法)描述

3.1 概述对程序流程的描述称为算法(algorithm) 在程序中,程序的流程控制语句是用语句(statement)来实现的,它指定了表达式的计算次序。 程序流程控制包括:选择和循环 选择执行是指根据某个条件满足与否来决定是否执行某个语句 循环执行是指根据某个条件是否满足来决定是否重复执行某个语句 设计流程控制时,可先用程序流程图(flowchat)来对程序流程进行描述,...

2020-01-11 11:19:51 2063

原创 从零学习C++第二章:基本数据类型和表达式

2.1 数据类型数据的特征在程序设计中体现为数据类型,它包括数据结构和可施于数据的操作(运算)。一种数据类型(data type)可看作由两个集合构成:值集和操作(运算)集值集:描述了该数据类型可包含哪些数据以及这些数据的结构(组织形式) 操作集:描述了对值集中的数据能实施哪些运算数据类型分为简单数据类型和复合数据类型简单数据类型:构成类型值集的数据是不可再分解的简...

2019-12-15 19:51:43 1923

原创 从零学习C++第一章:概述

1.1 计算机的工作模型1.1.1 冯·诺依曼体系结构目前计算机采用的还是传统的冯·诺依曼体系结构,冯·诺依曼结构的计算机由存储、运算、控制、输入及输出五个单元组成存储单元用于存储程序(指令序列)和数据 运算单元用于进行算术/逻辑运算 控制单元用于控制程序的执行和根据指令向其他单元发出控制信号 输入单元和输出单元作为计算机与外界的接口,用于实现系统的输入和输出功能工作过程...

2019-12-15 19:12:23 435

原创 armbian启用wifi

$ dmesg | grep wifi显示:Open firmware file failed /lib/firmware/rkwifi/fw_bcm43438a1.binhttps://github.com/BPI-SINOVOIP/BPI-files/blob/master/others/brcm/lib/firmware/ap6212/fw_bcm43438a1.bin...

2019-08-15 10:01:35 6386

原创 RaspberryPi_001.安装 配置

设备:Raspberry Pi 4Bhttps://www.raspberrypi.org/raspbain:10(buster) http://www.raspbian.org/文档:https://www.raspberrypi.org/documentation/修改软件源# 编辑 `/etc/apt/sources.list` 文件,删除原文件所有内容,用以下内...

2019-08-13 09:51:07 351

原创 OpenCV_001.安装

OpenCV 4.1.1Doc:https://docs.opencv.org/4.1.1/Source:https://github.com/opencv/opencv/archive/4.1.1.zipInstallation in Linuxhttps://docs.opencv.org/4.1.1/d7/d9f/tutorial_linux_install.html[...

2019-08-07 09:49:20 184

原创 armbain调用mipi摄像头

替换内核【非本机替换内核】在这里也可以像本机替换内核一样直接执行#make,但本文将编译内核和编译模块分开来执行,但原理和结果是一样的。1)编译内核: #make bzImage内核编译成功后,会在源码树根目录即linux-3.12.5/arch/x86_64/boot/目录中生成一个新内核的映像文件bzImage。注:对于大内核(比如需要SCSI支持),ma...

2019-08-05 13:02:11 4103 1

原创 win_001.制作U盘启动

下载windows镜像文件网址:MSDNhttps://msdn.itellyou.cn/网址:Microsofthttps://www.microsoft.com/zh-cn/download/default.aspxX86:32bitX86_64:64bit制作启动盘工具:rufushttps://rufus.ie/开机按Delete进入BIOS,...

2019-08-01 16:17:59 293

转载 linux_009.make与Cmake

转自:https://blog.csdn.net/weixin_42491857/article/details/80741060写程序大体步骤为:1.用编辑器编写源代码,如.c文件。2.用编译器编译代码生成目标文件,如.o。3.用链接器连接目标代码生成可执行文件,如.exe。但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理...

2019-07-23 11:18:16 92

原创 aosp_017.android内核裁剪

以lineage OS - msm8996 内核为例https://github.com/zzq1996/android_kernel_xiaomi_msm8996之前一篇文章写了如何配置交叉编译工具链:https://blog.csdn.net/zzq1824837536/article/details/89488058$ git clone https://github.co...

2019-07-22 14:22:45 546

原创 嵌入式Linux系统

思想:先整体后局部Pc与开发板连接方式1、UART异步串行通信接口(串口)2、USB串行通信接口3、TCP/IP网络通信接口4、Debug Jtag调试接口PC:CentOS 7Demoboard:Friendly arm nano pi neo4WIKI:http://wiki.friendlyarm.com/wiki/index.php/NanoPi...

2019-07-15 13:40:03 5005

原创 Linux_008.Makefile

转自:https://www.cnblogs.com/owlman/p/5514724.htmlMakefile简介在软件开发中,make通常被视为一种软件构建工具。该工具主要经由读取一种名为“makefile”或“Makefile”的文件来实现软件的自动化建构。它会通过一种被称之为“target”概念来检查相关文件之间的依赖关系,这种依赖关系的检查系统非常简单,主要通过对比文件的修改时间...

2019-07-12 11:22:19 124

原创 aosp_017.*.img

boot.imgaosp源码中的boot.img制作工具——mkbotimg,路径system/core/mkbootimg可以boot.img包括kernel和ramdisk两部分mkbootimg程序的各参数是由INTERNAL_BOOTIMAGE_ARGS和BOARD_MKBOOTIMG_ARGS来指定的。这两者分别取决于其他makefile中的定义。如BoardCon...

2019-07-10 14:55:18 274

原创 aosp_016.编译friend arm内核

板子:friendlyArm nano pi neo4官方wiki:http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO4/zh编译 FriendlyCore/FriendlyDesktop/Lubuntu/EFlasher的内核源代码安装交叉编译器安装aarch64-linux-gcc 6.4该编译器可用来编译Li...

2019-07-02 11:13:09 843 1

原创 SSM_008.Maven

安装brew install maven验证mvn -vApache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)Maven home: /usr/local/Cellar/maven/3.6.1/libexecJava version: 12.0.1, v...

2019-06-24 14:47:11 168

原创 Linux_006. 操作系统启动过程

不错的文章:https://blog.csdn.net/weixin_40720202/article/details/90166825MBR(MS-DOS)与GPT——两种磁盘分区表(partition table)格式MBR分区表硬盘0磁道的第一个扇区存放MBP和partition table,这个扇区的大小通常是512字节。主引导记录(MBR,Master Boot Recor...

2019-06-24 12:57:38 107

原创 Mac_003:安装centos虚拟机并调整外存大小

cd ~/VirtualBox VMs/yourVirtualMechineName#重置为61440MB,即60GBsudo VBoxManage modifyhd ./yourMechineName.vdi --resize 61440开机,打开terminalsudo fdisk -l /dev/sdaDisk /dev/sda: 64.4 GB, 6442450944...

2019-06-24 10:00:58 121

原创 Linux_007.文件系统

参考:https://www.cnblogs.com/alantu2018/p/8461749.htmlLinux中把一切资源抽象为文件,包括硬件设备,这样就可以通过读写文件完成对设备的操作。举例来说,SATA接口的硬盘的文件名即为/dev/sd[a-d],其中括号内的字母为a-d当中的任意一个,亦即有/dev/sda、/dev/sdb、/dev/sdc、/dev/sdd这四个文件的意思。几乎...

2019-06-21 14:36:40 127

转载 Tensorflow_002.Tensor & android

https://www.jianshu.com/p/834bf90036c3

2019-05-22 16:50:59 96

原创 aosp_015.配置编译文件,删除自带app

vim build/target/product/generic_no_telephony.mk网络问题:x1 介绍用于解决 AOSP 开源项目网络感叹号问题。0x2 解决思路将被干掉的 Google 网址更换为没被干掉的网址。0x3 详细步骤修改 NetworkMonitor.java,文件位置位于:${源码目录}/frameworks/base/se...

2019-05-08 15:44:00 971

转载 aosp_014.修改系统为横屏显示

最新方法:https://blog.csdn.net/paullovazxq/article/details/52153182vim frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java找到rotationForOrientationLw()方法将返回值改为mLand...

2019-05-08 14:31:24 707

原创 Linux_005.VIM的使用

配置vim ~/.vimrcset numberset showmodeset wrapset laststatus=2set showmatchset encoding=utf-8set termencoding=utf-8set fileencodings=utf-8,gbk,latin1set hlsset cindentset backspace=2fil...

2019-04-26 11:29:01 120

原创 关于Git的基本使用方法

转自:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000分布式版本控制软件:git 分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版...

2019-04-25 15:08:51 216

原创 aosp_013.下载,配置、编译内核并刷入手机

查看内核版本adb shellcat /proc/version输出Linux version 3.18.120-gd46a6fb646f9-dirty (sucom@super-pc) (gcc version 4.9.x 20150123 (prerelease) (GCC) ) #1 SMP PREEMPT Tue Apr 16 10:34:08 CST 2019...

2019-04-24 12:12:14 3226

原创 aosp_012.小米修改第一屏

参考:https://github.com/moonheart/sagit-logo-genbinwalk、HexEditorbinwalk -e logo.imghttp://www.miui.com/thread-8454675-1-1.htmlhttp://bbs.xiaomi.cn/t-24805902

2019-04-23 16:43:49 802

原创 OS X安装、配置Nginx

安装brew install nginx提示信息Docroot is: /usr/local/var/wwwThe default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so thatnginx can run without sudo.nginx will load all files ...

2019-04-23 14:58:09 110

转载 java程序设计模式_概述

转自:https://github.com/BeesX/BeesAndroid/blob/master/doc/Android%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E5%8E%9F%E5%88%99%E4%B8%8E%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md设计模式设计模式就是针对某一种特殊场景而给出的标准解决方案,是...

2019-04-23 12:58:26 2548

原创 aosp_016.android系统资源

转自:https://blog.csdn.net/myfriend0/article/details/78840201前言在开发 APP 的时候,会在 res/ 下引入众多资源,但是有些资源是不需要引入的,因为 Android 系统已经提供了这些资源。所谓 Android 系统资源,就是 Android 系统自带的,可以供所有 APP 使用的资源。比如像 YES/NO 这种简单的字符串,可以...

2019-04-16 15:47:51 167

转载 aosp_011.状态栏和锁屏界面

转自:https://www.jianshu.com/p/f8ead0a44f5bframeworks/base/package/Keyguard主要为系统中锁屏模块的代码frameworks/base/package/SystemUI这个代表的是系统UI,状态栏,通知中心显示,最近任务列表,锁屏的都在这里面控制,只看锁屏模块的话,keyguard相当于处理显示view,而Syste...

2019-04-15 15:00:09 727

原创 aosp_010.删除自带app

#查看安装包名(仅显示系统包名)adb shell pm list packages -s#获取包名的地址adb shell pm path com.xx.xx#挂载系统读写权限:adb remount#删除apk,重启adb shell rm /system/app/OldDriver/OldDriver.apk#lineage自带App列表package:/syst...

2019-04-10 13:56:30 568

空空如也

空空如也

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

TA关注的人

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