- 博客(28)
- 收藏
- 关注
原创 【工具软件】【Ubuntu】修改国内软件源
【工具软件】【Linux】修改国内软件源1 修改sources.list2 更新信息搭建Linux环境后,需要安装一些应用。由于网络原因,在安装前应先修改国内软件源。1 修改sources.list保险起见,可以先备份sources.list,然后再修改:cp /etc/apt/sources.list /etc/apt/sources_bak.list # sources_bak.list作为备份sudo vim /etc/apt/sources.list
2022-02-10 11:39:44
1417
原创 【面试题】【C++】01-C++语法部分面试题
【面试题】【C++】01-C++基础1 题目1 题目C和C++有什么区别?a和&a有什么区别?int a[10];int (*p)[10] = &a;static关键字有什么作用?#define和const有什么区别?对于⼀个频繁使用的短小函数,应该使用什么来实现?有什么优缺点?什么是智能指针?智能指针有什么作用?分为哪几种?各自有什么样的特点?shared_ptr是如何实现的?右值引用有什么作用?悬挂指针与野指针有什么区别?静态链接和动态链接有什么区别?
2022-02-04 12:18:14
659
原创 【C++】【C++ Primer】11-关联容器
【C++】【C++ Primer】11-关联容器1 使用关联容器1.1 关联容器简介1.2 使用map1.3 使用set2 关联容器概述2.1 定义关联容器2.1.1 定义和初始化关联容器的方式2.1.2 初始化multimap或multiset2.2 关键字类型的要求2.2.1 有序容器的关键字类型2.2.2 使用关键字类型的比较函数2.3 pair类型2.3.1 pair类型概述2.3.2 创建pair对象的函数3 关联容器操作3.1 关联容器迭代器3.1.1 set的迭代器是const的3.1.2 遍
2022-01-09 19:09:41
1153
原创 【C++】【C++ Primer】10-泛型算法
【C++】【C++ Primer】10-泛型算法1 概述1.1 泛型算法的原理1.2 标准库算法find——查找容器中是否包含特定值1.2.1 参数说明1.2.2 返回值说明1 概述标准库定义了一组泛型算法,来实现查找元素、替换、删除、排序等功能。之所以称之为“算法”,是因为它们实现了经典算法的公共接口。之所以称之为“泛型”,是因为它们可以用于不同元素的多种容器类型(甚至可以用于数组等其他类型的序列)。大多数算法都定义在头文件algorithm中,头文件numeric中也定义了一组数组泛型算法。1.
2022-01-09 19:09:25
257
原创 【C++】【C++ Primer】9-顺序容器
【C++】【C++ Primer】9-顺序容器1 顺序容器概述1 顺序容器概述容器就是特定类型对象的集合。
2022-01-09 19:09:15
328
原创 【C++】【C++ Primer】8-IO库
【C++】【C++ Primer】8-IO库1 IO类1.1 IO类型间的关系1.2 IO对象不能拷贝或赋值1.3 条件状态1.3.1 查询流的状态1.3.2 管理流的状态1.4 管理输出缓冲1.4.1 刷新输出缓冲区1.4.2 unitbuf操纵符1.4.3 关联输入流和输出流2 文件输入输出2.1 使用文件流对象2.1.1 成员函数open与close2.2 文件模式3 string流4 示例1 IO类目前为止,我们已经使用过以下IO库设施:istream类型:提供输入操作ostream类型:
2021-12-31 16:14:49
299
原创 【C++】【C++ Primer】7-类
【C++】【C++ Primer】7-类1 定义抽象数据类型类的基本思想是数据抽象和封装。数据抽象是一种依赖于接口和实现分离的编程技术。类的接口包括用户所能执行的操作。类的实现则包括类的数据成员、接口的具体实现、定义类所需的各种私有函数。封装实现了类的接口和实现的分离。封装后的类隐藏了实现细节,类的用户只能使用接口,无法访问实现部分。类想要实现数据抽象和封装,首先要定义一个抽象数据类型。在抽象数据类型中,类的设计者考虑类的实现过程,使用该类的程序员只需要抽象思考类型做了什么,无需了解类型的工作细节。
2021-12-31 16:13:06
460
原创 【C++】【C++ Primer】6-函数
【C++】【C++ Primer】6-函数1 函数基础1.1 调用运算符1.2 调用函数1.3 形参和实参1.4 函数返回类型1.5 局部对象1.5.1 作用域和生命周期1.5.2 局部变量1.5.3 自动对象2 参数传递3 返回类型和return语句4 函数重载5 特殊用途语言特性6 函数匹配7 函数指针1 函数基础1.1 调用运算符调用运算符是一对圆括号,我们通过调用运算符来执行函数。调用运算符作用于一个表达式,该表达式是函数或指向函数的指针。1.2 调用函数函数的调用完成两项工作:用实参
2021-12-31 16:12:51
158
原创 【C++】【C++ Primer】5-语句
【C++】【C++ Primer】5-语句1 简单语句1.1 表达式语句1.2 空语句1.3 复合语句(块)2 语句作用域3 条件语句3.1 if语句3.2 switch语句4 迭代语句4.1 while语句4.2 传统for语句4.3 范围for语句4.4 do while语句5 跳转语句5.1 break语句5.2 continue语句5.3 goto语句6 try语句块和异常处理6.1 throw表达式6.2 try语句块6.2.1 异常处理代码6.2.2 函数在寻找处理代码的过程中退出6.3 标准异
2021-12-31 16:12:40
138
原创 【C++】【C++ Primer】4-表达式
【C++】【C++ Primer】4-表达式1 基础1.1 基本概念1.1.1 一元运算符1.1.2 二元运算符1.1.3 三元运算符1.1.4 组合运算符和运算对象1.1.5 运算对象转换1.1.6 重载运算符1.1.7 左值和右值1.2 优先级与结合律1.3 求值顺序2 算术运算符3 逻辑和关系运算符4 赋值运算符4.1 列表初始化4.2 赋值运算满足右结合律4.3 赋值运算符优先级较低5 递增、递减运算符5.1 递增、递减运算符基本概念5.2 解引用运算符与递增运算符的优先级6 成员访问运算符7 条件
2021-12-31 16:12:26
231
原创 【C++】【C++ Primer】3-字符串、向量和数组
【C++】【C++ Primer】3-字符串、向量和数组1 命名空间的using声明1.1 using声明(using declaration)1.2 第二种方法候补2 标准库类型string2.1 定义和初始化string对象2.1.1 默认初始化2.1.2 拷贝初始化2.1.3 直接初始化2.1.4 初始化string对象的方式2.2 string对象上的操作2.2.1 使用iostream读写string对象2.2.2 使用getline读取一整行2.2.3 string的empty和size操作2.
2021-12-31 16:12:12
598
原创 【C++】【C++ Primer】2-变量和基本类型
【C++】【C++ Primer】2-变量和基本类型1 基本内置类型1.1 算术类型1.1.1 整型1.1.2 浮点型1.1.3 带符号类型和无符号类型1.1.4 类型选择原则1.2 类型转换1.2.1 自动类型转换1.2.2 含有无符号类型的表达式1.3 字面值常量1.3.1 整型和浮点型字面值1.3.2 字符和字符串字面值1.3.3 转义序列1.3.4 指定字面值的类型1.3.5 布尔字面值和指针字面值2 变量2.1 变量定义2.1.1 列表初始化2.1.2 默认初始化2.2 变量声明和定义的关系2.3
2021-12-31 16:11:47
297
原创 【C++】【C++ Primer】1-开始
【C++】【C++ Primer】1-开始1 编写一个简单的C++程序1.1 函数1.1.1 main函数1.1.2 函数定义的结构1.2 数据类型1.3 代码示例1.3 编译、运行程序1.3.1 编译命令1.3.2 警告选项2 初识输入输出2.1 标准库iostream2.2 标准输入输出对象2.3 输出运算符、输入运算符2.4 操纵符(manipulator)2.5 命名空间和作用于运算符。2.6 代码示例3 注释3.1 单行注释3.2 多行注释4 控制流4.1 while语句4.2 for语句4.3
2021-12-31 16:11:35
85
原创 【VCS】【Git】Git快速入门
【VCS】【Git】Git快速入门1 Git的安装2 初次使用Git之前的配置2.1 配置用户名和邮箱2.2 查看配置3 理论基础3.1 为什么要掌握Git命令3.2 这么多差异版本,是如何保存的3.2.1 SVN记录原理3.2.2 Git记录原理3.3 工作区、暂存区和Git仓库3.3.1 工作区3.3.2 暂存区3.3.3 Git仓库3.4 Git的工作流程3.5 Git管理的文件状态4 建仓、拉代码、添加到暂存区、提交4.1 建仓4.1.1 建立全新项目(空白目录)4.1.2 已有项目代码建仓4.2
2021-12-30 16:06:49
528
原创 【数据结构与算法】【知识体系整理】2-链表
【数据结构与算法】【知识体系整理】2-链表1 链表1 链表为了更好地理解链表,我们和顺序表对比。顺序表需要一段连续的存储空间,且初始化时就固定了长度。如果后续发现空间不够用,则需要扩容。链表的每个节点都是“数据+指针”的格式,通过指针将各元素连接起来,因此不需要连续的存储空间。链表的长度不固定,也不需要扩容。头指针指向链表中第一个节点的地址。最后一个节点的指针为NULL。链表的结构定义:data、next指针。单向链表的操作插入如想将节点new插入到链表中第n个位置,首先从链表头部向后遍历
2021-12-28 15:30:03
304
原创 【数据结构与算法】【知识体系整理】1-顺序表
【数据结构与算法】【知识体系整理】1-顺序表1 数据结构介绍2 顺序表2.1 顺序表的结构定义2.2 顺序表的结构操作2.2.1 顺序表插入2.2.2 顺序表删除2.3 顺序表的代码实现1 数据结构介绍程序 = 算法 + 数据结构程序设计 = 算法 + 数据结构 + 编程范式数据结构 = 结构定义 + 结构操作算法→计算资源→时间复杂度数据结构→存储资源→空间复杂度2 顺序表顺序表可以理解为更高级的数组,原因如下:顺序表的大小不是在编译时决定的,可以动态开辟。顺序表的大小是可以更改的(
2021-12-28 14:56:51
458
原创 【Linux】【设备树】1-Linux设备树的引入与体验
【Linux】【设备树】1-Linux设备树的引入与体验1 字符设备的三种写法1.1 怎么写驱动?1.2 如何写驱动程序?1.3 在驱动中如何指定LED引脚?2 字符设备驱动的传统写法1 字符设备的三种写法1.1 怎么写驱动?①看原理图:a.确定引脚;b.看芯片手册,确定如何操作引脚;②写驱动程序;起封装作用;③写测试程序;如下原理图,VCC经过一个限流电阻到达LED的一端,再通向芯片的引脚上。当芯片引脚输出低电平时,电流从高电平流向低电平,LED灯点亮;当芯片引脚输出高电平时,没有
2021-12-28 13:17:31
421
原创 【Android】启动过程分析
【Android】启动过程分析1 Android启动过程2 Android启动过程分析主要内容3 Android启动模式3.1 recovery升级模式3.2 正常启动模式3.3 uboot检查启动模式的过程4 Android init进程1 Android启动过程在分析具体细节之前,我们先来看看Android系统的启动过程:图1 Android启动过程2 Android启动过程分析主要内容图2 Android启动分析的主要内容3 Android启动模式3.1 recovery升级模式启
2021-12-28 13:16:41
181
原创 【Android】【GUI】01-绘图基本组件及其关系
【Android】【GUI】01-绘图基本组件及其关系1 绘图的基本组件2 绘图基本组件的理解2.1 Bitmap2.2 Canvas2.3 Drawing Primitive2.4 Paint1 绘图的基本组件Android官方文档中,描述如下:To draw something, you need 4 basic components:A Bitmap to hold the pixels;A Canvas to host the draw calls (writing into the b
2021-11-01 10:57:46
1908
原创 【Android】Android.mk的使用方法
【Android】Android.mk的使用方法1 Android.mk的作用2 Android.mk的基本用法2.1 生成可执行文件2.1.1 生成到默认目录2.1.2 生成到指定目录2.1.3 相关变量、函数说明2.1.3.1 LOCAL_PATH $(call my-dir)2.1.3.2 include $(CLEAR_VARS)2.1.3.3 LOCAL_MODULE2.1.3.4 LOCAL_MODULE_PATH2.1.3.5 LOCAL_SRC_FILES2.1.3.6 include $(
2021-09-15 08:16:30
2490
原创 【Makefile】04-Makefile书写规则
【Linux】【Makefile】04-Makefile书写规则1 规则举例2 规则的语法3 在规则中使用通配符4 文件搜寻4.1 使用特殊变量VPATH4.2 使用make的vpath关键字5 伪目标6 多目标Makefile的书写规则包含两部分:依赖关系生成目标的方法在Makefile中,规则的顺序非常重要。Makefile中应当只有一个最终目标,其他目标都是被这个最终目标连带出来的。Makefile中可能会定义很多目标,但第一条规则中的目标将被确认为最终目标。如果第一条规则中有多个目标,则
2021-09-14 13:12:32
176
原创 【Makefile】03-Makefile总述
【Linux】【Makefile】03-Makefile总述1 Makefile里有什么1.1 显式规则1.2 隐晦规则1.3 变量定义1.4 文件指示1.5 注释2 Makefile的文件名2.1 默认情况2.2 使用自定义文件名1 Makefile里有什么Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示、注释。1.1 显式规则显式规则用于说明如何生成一个或多个目标文件。Makefile的书写者要明确指出,要生成什么文件,它的依赖文件是什么,以及具体的生成命令。1.2
2021-09-13 13:31:03
134
原创 【Makefile】02-从一个简单的Makefile开始
【Linux】【Makefile】02-从一个简单的Makefile开始1 Makefile的规则2 Makefile版本一3 make是如何工作的3.1 只输入make命令3.2 显式执行4 Makefile版本二——在Makefile中使用变量5 Makefile版本三——隐晦规则前文提到,Makefile文件的作用是建立规则,告诉make命令如何编译和链接程序。为了快速建立对于Makefile的基本认知,我们先不罗列具体细节,而是通过一个简单的示例来看看Makefile的基本书写规则。在本示例中,
2021-09-13 13:30:08
117
原创 【Makefile】01-前置知识
【Linux】【Makefile】01-前置知识1 Makefile简介2 程序的编译和链接2.1 编译(compile)2.2 链接(link)1 Makefile简介在初学C语言的时候,往往是使用Visual Stdio、Codeblock等IDE。写完代码,点击编译按钮,就会自动生成可执行文件。这样的好处是操作方便,可以将精力集中在语言学习本身。但IDE隐藏了编译过程的细节,在学习深入后,应当探究其原理。此外,如果在Linux环境下开发,就必须要学会写Makefile。可以说,会不会写Makefi
2021-09-13 13:29:31
117
原创 【编程杂谈】【书单】-陈皓大佬推荐书单
陈皓老师是COOLSHELL的创立者,一位颇具分享精神的前辈。网络上针对某个具体技术的学习资源很多,但鲜有为年轻的程序员们搭建架构,指明发展道路的资料体系。陈皓老师则弥补了这个缺憾,无论是早期的《程序员练级攻略》,还是近年在极客时间开设的专栏《左耳听风》,都非常具有指导意义。程序员的工作时间紧凑,压力也颇大,难免会有迷茫的时候。此时读读陈皓老师的文字,会感受到平和但坚定的力量。以下的书单来自《极客时间》,再次感谢陈皓老师。图1 陈皓大佬推荐书单(上)...
2021-09-06 08:20:41
664
原创 linux下将Python脚本打包为可执行文件
一. 下载pyinstaller链接二. 解压无需安装,解压即可使用三. 输入命令,进行打包命令格式:pyinstaller_path/pyinstaller.py -F source.py命令执行后,在当前目录中会出现一个dist目录。生成的可执行文件在这个目录下。
2017-04-27 13:51:46
4761
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人