- 博客(15)
- 收藏
- 关注
原创 string类
C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。
2024-03-07 12:36:19
1281
原创 C++内存管理
1. 栈又叫堆栈--非静态局部变量/函数参数/返回值等等,栈是向下增长的。2. 内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。(Linux课程如果没学到这块,现在只需要了解一下)3. 堆用于程序运行时动态内存分配,堆是可以上增长的。4. 数据段--存储全局数据和静态数据。5. 代码段--可执行的代码/只读常量。
2024-03-02 17:44:16
814
原创 类和对象详解
/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类的两种定义方式:1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。
2024-02-25 12:59:00
1081
原创 Linux进程
CPU:运算器&&控制器输入设备:话筒、摄像头、键盘、鼠标、磁盘、网卡输出设备:声卡、显卡、网卡、磁盘、显示器、打印机存储器:内存(掉电易失)设备是链接的:总线------主板设备链接不是目的,是手段------设备之间数据流动,本质是设备之间会进行数据的来回拷贝,拷贝整体速度,是决定计算机效率的重要指标。为什么要在体系结构里面存在内存?首先内存看做一个非常大的缓存区,引入内存,把效率问题,转化成了软件问题。计算机的效率最终都变成了内存效率为主。
2024-01-19 21:01:35
1496
原创 LInux的常用工具
1. 简介LInux中我们也要进行工具/指令/安装,检查卸载,需要yum工具yum相当于LInux的应用商店2. 使用yum注:当我们在自己的Linux机器上使用yum list等指令时,其实是向一个Linux的远端服务器提供了一个申请。操作系统的版本、用户的使用人数、周边配套的资源,不同的操作系统的侧重点不同、会吸引不同的人,社区资料不同、软件工具不同。yum如何获取目标服务器地址和下载地址,是因为系统里有一些配置文件,yum的本地仓库源。
2023-12-29 16:37:07
791
原创 初识C++
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后后面跟一对{}即可,{}中即为命名空间的成员。正常的命名空间定义// 正常的命名空间// 命名空间中可以定义变量/函数/类型int val;//2. 命名空间可以嵌套int a;int b;int c;int d;//3. 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。// ps:一个工程中的test.h和上面test.cpp中两个N1会被合并成一个。
2023-11-25 22:00:59
74
1
原创 动态规划的概述
a1,a2...a(i-1)和b1,b2,...bj)、a1,a2,...,ai和b1,b2,...b(j-1)的公共子序列都是ai,a2,...ai和b1,b2...bj公共子序列、如果ai==bj,a1,a2...a(i-1)和b1,b2,...b(j-1)的公共子序列加上ai,也是ai,a2,...ai和b1,b2...bj的公共子序列。最优子结构:大问题的(最优)解可以由小问题的(最优)解推出,在这个题中,大问题f(n)的解可以由小问题f(n - 2) 和 f(n - 1) 的解推出。
2023-11-12 17:57:51
97
2
原创 数据结构之排序
排序: 所谓排序,就是使一串数据,按照其中某个或某些关键词的大小,递增或递减的排列起来的操作。稳定性:假定待排序的记录序列中,存在多个具有相同关键词的数据,若经过排序后,这些记录的相对次序保持不变,即在原排序中,r[i] = r[j],且r[i]在r[j]之前,则称这种排序具有稳定性,否则称为不稳定的。内部排序:数据元素全部存放在内存中的排序外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。
2023-11-10 14:20:02
73
1
原创 数据结构之二叉树
对于深度为K的,有N个节点的二叉树,当且仅当其每一个节点都与深度为K的满二叉树中编号从1至N的节点--对应时称为完全二叉树。设二叉树的根节点所在层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。(1) 满二叉树:一个二叉树,如果每一层的节点数都达到最大值,则这个二叉树就是满二叉树,也就是说,如果一个二叉树的层数是k,且总节点数是2^k - 1,则他就是满二叉树。
2023-11-06 14:01:18
70
3
原创 数据结构之栈和队列
② 不为空的队列,pop时候,先把前n - 1个入为空的队列,再把最后一个元素pop,就完成了出队列。① 我们需要一个出栈栈代表出队列,然后一个入栈栈代表入队列,入栈需要倒入出栈倒过来,从而实现队列。栈和队列在算法题里面经常用到,可以用自己实现的栈和队列,也可以用库函数里面实现的栈和队列。① 需要准备两个队列,一个不为空,一个为空。③ 取top的时候,直接取队列的尾元素。② 当出栈为空,就把入栈全部倒入进去。二、 队列实现栈(手动实现队列)③ 当出栈不为空,什么都不动。用栈实现队列(手动实现栈)
2023-08-27 09:55:51
221
3
原创 数据结构之链表
对于大部分公司,都有笔试,笔试的时候算法必然不可少,同时面试题也会有考察,比如如何两个栈实现一个队列,所以笔试题必然要加强训练和思考。① 当遇到6时,需要找到前一个链接下一个,所以需要定义指针prev,和cur表示当前指针。① 反转以为这要改变链表的方向,所以需要知道当前位置的前一个和后一个,和当前位置的指针。② 按思路遍历,最后一个不需要全部尾插,插一个就行了。② 要注意边界,当6是第一个head头的时候怎么办。③ 注意画图,发现最后一个指针(n3)可能会野指针。需要大量的练习和画图和思考。
2023-08-26 16:42:17
151
2
原创 linux基本指令
①、 -a:查看隐藏的文件、.(点)表示当前目录、..(点点)表示上级目录。绝对路径:很详细,什么时候一段代码就可以跳转。用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)unzip name.zip -d 指定的路径。-i :忽略大小写的不同,所以大小写视为相同。功能:和more差不多,可以随意浏览文件。zip -r name.zip 你的目录。功能:用来获取电脑和操作系统的相关消息。%X : 相当于 %H:%M:%S。%F : 相当于 %Y-%m-%d。功能:查看文件目录和文件的信息。
2023-07-24 20:36:29
566
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人