自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第一天|704二分查找 27移除元素

当中间值>目标值时,替换右边的right(middle):因为右边是开区间,不用middle;数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖。此时当中间值>目标值时,替换右边的right(middle-1);3、数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。当中间值<目标值时,替换左边的right(middle+1)根据本题目引出了双指针的方法,再后续的题目中也能看到此方法的妙用。采用二分法,之前学到过,要考虑区间的左右封闭。

2023-03-15 20:42:35 1026 1

原创 leetcode:数组

leetcode中关于数组的题目

2022-07-25 11:16:11 225

原创 leetcode:704二分查找

leetcode刷题总结

2022-07-24 21:51:40 231

原创 Linux高并发服务器开发之第一章 Linux系统编程入门

针对c++开发岗更系统便捷的学习linux网络编程与系统编程的相关知识

2022-07-22 14:29:26 464

原创 Linux下使用VSCode进行完整项目开发

在linux系统下进行vscode的项目开发

2022-07-09 16:08:20 473

原创 基于VSCode和CMake实现C++开发——Linux篇

将操作系统Linux、编译器GCC、调试器GDB、IDE-VSCode、交叉编译工具CMake综合起来的系列教程

2022-07-08 15:04:30 832

原创 第一章 计算机系统概述

5.29号明确操作系统的学习任务,参考书《操作系统考研复习指导》,每天11页OS的概念和功能 向上提供接口 对下层功能的拓展 对系统资源的管理 OS的发展、特征(优缺点) 发展 单道批处理阶段 资源利用率低 吞吐量小 多道批处理阶段 用户响应时间较长 人机交互性差 分时 对外部信息处理不及时 实时 特征 并发 共享 异步 虚拟 OS的体系结构 大内核 微内核 OS的运行机制

2022-05-31 16:26:42 82

原创 如何高效阅读源码

开头:c++基础已经学完了很久,准备边学计算机四件套(数据结构、计网、操作系统、数据库)的同时,在github上找几个简单的c++项目,琢磨他们的编程思路方法:1、按照声明文件(.h)和实现文件(.cpp)的顺序阅读,先弄清各个类的组成,在弄清各个类的成员函数的实现,理解判定各个成员函数的功能。2、要注意类与类之间的静态、动态联系。静态:类与类之间的继承、组合关系;动态:类的成员函数之间的函数调用关系。3、从主函数(main)开始读,弄清该程序是如何运行的,试着画出流程图4、快速编程

2022-04-18 09:30:51 323

原创 第八章 排序

8.1概述排序的分类8.2插入排序

2022-04-11 12:50:30 507

原创 第七章 查找

7.1查找的基本概念在哪查找?查找表什么是查找?主关键字:只能对应一个;次关键字:可以对应多个 ;查找是否成功?查找的目的查询某个特定的数据元素是否在查找表中 检索某个特定的数据元素的各种属性 在查找表中插入一个数据元素 删除查找表中的某个数据元素查找表的分类静态查找表:不改变查找表的数据 动态查找表:改变查找表的数据如何评价查找算法7.2线性表的查找7.2.1顺序查找算法的其他形式算法7.1的改进改进:把待查关键字ke...

2022-04-08 15:14:15 446

原创 第六章 图(二)

6.5图的遍历遍历的定义从已给的连通图中某一顶点出发,沿着一些边访遍图中所有的顶点,且使每个顶点仅被访问一次遍历的实质找每个顶点的邻接点的过程图常用的遍历深度优先搜索(DFS) 广度优先搜索(BFS)6.5.1深度优先搜索(DFS)例题DFS的算法实现1、邻接矩阵若邻接矩阵给定,则DFS的结果也一定非连通图的深度遍历思路:当一个连通分量被访问完以后,从其他剩余分量再找一个继续访问6.5.2广度优先搜索(BFS)算法实现...

2022-04-02 15:02:56 301

原创 第六章 图(一)

回顾6.1图的定义和基本术语完全图:任意两个点都有一条边相连稀疏图:有很少边或弧的图稠密图:有较多边或弧的图网:边/弧带权的图邻接:有边/弧相连的两个顶点之间的关系注:(离散数学)中”(边)“表示两者没有先后顺序,“<弧>”表示两者存在前后关系关联(依附):边/弧与顶点之间的关系顶点的度:与该顶点相关联的边的数目例题路径:接续的边构成的顶点序列路径长度:路径上边或弧的数目/权值之和回路(环):第一个顶点和最后一个顶点相同的路径简...

2022-04-01 16:01:26 1807

原创 第五章 树和二叉树(二)

5.7 树和森林5.7.1 树的存储结构1双亲表示法2孩子链表3 孩子兄弟表示(二叉树表示法,二叉链表表示法)表示方法总结:左斜的元素为一层的,右边存放的是下一个兄弟结点5.7.2 树与二叉树的转换由于树和二叉树都可以用二叉链表作存储结构,则以二叉链表作媒介可以导出树与二叉树之间的一个对应关系1将树转化为二叉树方法:例题12将二叉树转化为树例题25.7.3 森林与二叉树的转化1森林转化成二叉树例题12二...

2022-03-30 19:16:20 332

原创 第五章 树和二叉树(一)

1、树定义(递归、嵌套的) n个结点的有限集 n=0,空树 n>0,满足两个条件 有且仅有一个特定的称为根的结点 其余结点可分为m个互不相交的有限集,其中每一个集合本身又是一颗树,称为根的子树 树的表示方式 常规 嵌套集合 凹入表示 广义表 2、树的基本术语结点:数据元素以及指向子树的分支 根结点:非..

2022-03-28 21:14:53 153

原创 数据结构与算法 第一章绪论

教材:《数据结构与算法》第四版 罗文劼1、数据结构的基本概念数据:信息的载体 数据项:是数据不可分割的最小单位 数据元素:是数据的基本单位 一个数据元素由若干个数据项组成 数据对象(数据元素类):具有相同性质的数据元素的集合 数据结构:相互之间存在着一种或多种关系的数据元素的集合2、数据结构的分类数据的逻辑结构 集合:属于同一个集合 线性结构:存在一对一的关系 树形结构:存在一对多的关系 图形结构(网状结构):存在多对多的关系 数据的存储结构 顺序存储方法

2022-03-26 10:54:12 655

原创 c++总结

研一第一学期从b站开始了c++的学习,从众多资源中选择了黑马视频,从最开始的什么都不懂,到如今慢慢能写出来一些代码,最终在今天2022年3月14日把所有基础视频看完,并每次将所学的知识在csdn上总结,终于熬过了这段痛苦的经历!本学期的任务:数据结构和算法、计算机网络这两本书籍的学习,将自己的计算机基础打好!...

2022-03-14 19:44:58 1464

原创 第五章 STL常用算法

概述:5.1常用遍历算法5.1.1for_each(遍历)代码#include<iostream>using namespace std;#include<vector>#include<algorithm>//普通函数void print01(int val) { cout << val << " ";}//仿函数class print02{public: void operat.

2022-03-14 19:05:07 1313

原创 第四章 STL函数对象

4.1函数对象4.1.1函数对象概念4.1.2函数对象使用代码#include<iostream>using namespace std;#include<string>//1、函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值class Myadd {public: int operator()(int v1,int v2) { return v1 + v2; }};void test01() { Myad.

2022-03-10 14:33:32 104

原创 STL剩余容器(一)

3.5 栈stack容器(栈:先进后出)3.5.1stack基本概念3.5.2stack常用接口代码#include<iostream>using namespace std;#include<stack>void test01() { stack<int>s; //入栈 s.push(10); s.push(20); s.push(30); s.push(40); cout << "栈的大小:" &lt

2022-03-02 17:26:05 76

原创 项目4:STL案例-评委打分

代码#include<iostream>using namespace std;#include<string>#include<vector>#include<deque>#include<algorithm>#include<ctime>class Person{public: Person(string name,int score) { this->m_Name = name; ..

2022-03-02 16:03:49 120

原创 第三章 STL-常用容器之deque容器

3.3.1deque容器基本概念deque容器的迭代器也是支持随机访问的3.3.2deque构造函数代码#include<iostream>using namespace std;#include<deque>void printDeque(const deque<int>&d) //只读状态{ for (deque<int>::const_iterator it = d.begin(); it != d...

2022-03-01 15:34:13 337

原创 第三章 STL-常用容器之vector容器

3.2.1vecot基本概念3.2.2vector构造函数代码#include<iostream>using namespace std;#include<vector>void printVector(vector<int>&v) { for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout << *it ..

2022-02-24 16:48:40 502

原创 第三章 STL-常用容器之string容器

3.1string容器3.1.1string基本概念本质string是c++风格的字符串,而string本质上是一个类string与char*的区别char*是一个指针 string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器特点string类内部封装了很多成员方法 例如:查找find、拷贝copy、删除delete、替换replace、插入insert3.1.2string构造函数构造函数原型:string(); ...

2022-02-20 17:03:37 915

原创 第二章 STL初识

2.1 STL的诞生长久以来,软件界一直希望建立一种可重复利用的东西 C++的面向对象和泛型编程思想,目的就是复用性的提升 大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作 为了建立数据结构和算法的一套标准,诞生了STL2.2 STL基本概念STL:标准模板库 STL从广义上分为:容器(container)、算法(algorithm)、迭代器(iterator) 容器和算法之间通过迭代器进行无缝连接 STL几乎所有的代码都采用了模板类或者模板函数2.3 STL六.

2022-01-12 17:04:21 169

原创 项目3:类模板案例

案例描述:实现一个通用的数组类,要求如下:可以对内置数据类型以及自定义数据类型的数据进行存储 将数组中的数据存储到堆区 构造函数中可以传入数组的容量 提供对应的拷贝构造函数以及operator=防止浅拷贝问题 提供尾插法和尾删法对数组中的数据进行增加和删除 可以通过下标的方式访问数组中的元素 可以获取数组中当前元素个数和数组的容量代码MyArray.hpp中的代码//自己的通用的数组类#pragma once#include<iostream>using nam

2022-01-09 20:16:00 121

原创 第一章 模板

本阶段主要针对c++泛型编程和STL技术做详细讲解1模板1.1模板的概念模板就是建立通用的模具,大大提高复用性模板的特点不可以直接使用,他只是一个框架 模板的通用并不是万能的1.2函数模板c++另一种编程思想称为泛型编程,主要利用的技术就是模板 c++提供两种模板机制:函数模板和类模板1.2.1函数模板语法函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。语法:template<typename T>

2022-01-05 20:10:27 85

原创 项目2——职工管理系统

2创建项目创建新项目 添加文件3创建管理类管理类负责的内容如下:与用户的沟通菜单界面 对职工增删改查的操作 与文件的读写交互3.1头文件实现#pragma once //防止头文件重复包含#include<iostream> //包含输入输出流头文件using namespace std; //使用标准命名空间class WorkManager {public: WorkManager(); ~WorkManager();};...

2021-12-28 20:17:07 532

原创 第五章 文件操作

程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化c++中对文件操作需要包含头文件<fstream>文件类型分类文本文件——文件以文本的ASCII码形式存储在计算机中 二进制文件——文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类ofstream:写操作 ifstream:读操作 fstream:读写操作5.1 文本文件5.1.1 写文件具体步骤:1、包含头文件 #include

2021-12-03 15:36:20 77

原创 第四章 类和对象(三)

4.6继承继承是面向对象三大特征之一有些类与类之间存在特殊的关系我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。4.6.1基本语法代码#include<iostream>using namespace std;class BasePage {public: void header() { cout << "首页、公开课、登录....(公共头部)" << endl; } void footer.

2021-12-02 13:41:27 558

原创 第四章——类和对象(二)

4.4 友元在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术友元的目的:让一个函数或者类 访问另一个类中私有成员友元的关键字:friend友元的三种实现:全局函数做友元 类做友元 成员函数做友元4.4.1全局函数做友元代码#include<iostream>using namespace std;#include<string>class Building { //goodGay全局函数是Buildi

2021-11-23 13:45:04 343

原创 第四章——类和对象(一)

c++面向对象的三大特性:封装、继承、多态4.1封装4.1.1封装的意义封装的意义将属性和行为作为一个整体,表现生活中的事物 将属性和行为加以权限控制封装意义一:在设计类的时候,属性和行为写在一起,表现事物语法:class 类名{ 访问权限 :属性 / 行为 };代码#include<iostream>using namespace std;//圆周率const double PI = 3.14;class Circle { //访问权限...

2021-11-15 09:55:32 154

原创 第三章——函数提高

3.1函数默认参数在C++中,函数的形参列表中的形参是可以有默认值的语法:返回值类型 函数名 ( 参数= 默认值){ }代码#include<iostream>using namespace std;int func(int a, int b, int c) { return a + b + c;}//注意事项//1、如果某个位置参数有默认值,那么从这个位置往后,从左往右都必须有默认值//int func(int a, int b = 10, int c)..

2021-10-20 21:00:50 99

原创 第二章——引用

2.1引用的基本使用作用:给变量起别名语法:数据类型 &别名 = 原名代码#include<iostream>using namespace std;int main(){ int a = 10; int &b = a; //引用的语法:数据类型 &别名 = 原名 cout << "a=" << a << endl; cout << "b=" << b << end

2021-10-20 19:53:10 104

原创 c++核心编程——第一章内存分区模型

本节主要针对c++面向对象编程技术。1.内存分区模型内存划分4个区域代码区:存放函数体的二进制代码,由操作系统进行管理 全局区:存放全局变量和静态变量及常量区(字符串常量和其他常量) 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等 堆区:由程序员分配和释放四区的意义:不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程。1.1程序运行前在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域代码区 存放CPU执行的机器指令 特点 代码区是共

2021-10-18 10:21:11 147

原创 项目1——通讯录管理系统

1.创建项目2.菜单功能功能描述:用户选择功能的界面 步骤:1.封装函数显示该界面,如void showMenu()2.在main函数中调用封装好的函数代码#include<iostream>using namespace std;//菜单界面void showMenu() { cout << "***************************" << endl; cout << "***** 1、添加联系人.

2021-10-14 11:56:42 292

原创 第八章——结构体

8.1结构体基本概念结构体属于用户自定义的数据类型,允许用户存储不同的数据类型8.2结构体定义和使用语法:struct 结构体名 { 结构体成员列表 };通过结构体创建变量的三种方式:1. struct 结构体名 变量名2. struct 结构体名 变量名 = { 成员1值,成员2值.....}3.定义结构体时顺便创建变量实例#include<iostream>using namespace std;#include<string&gt...

2021-09-24 10:49:19 434

原创 第七章——指针

7.1 指针的基本概念作用:可以通过指针间接访问内存注:1.内存编号是从0开始记录的,一般用十六进制数字表示。2.可以利用指针变量保存地址。7.2指针变量的定义和使用指针定义的语法:数据类型 * 变量名;实例#include<iostream>using namespace std;int main(){ //1、定义指针 int a = 10; //指针定义的语法:数据类型 * 指针变量名; int * p; //让指针记录变量a的地址 p

2021-09-17 15:08:38 92

原创 第六章——函数

6.1概述作用:将一段经常使用的代码封装起来,减少重复代码一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。6.2函数的定义五大步骤:1.返回值类型2.函数名3.参数列表4.函数体语句5.return表达式语法:实例#include<iostream>using namespace std;//函数的定义//语法:返回值类型 函数名 (参数列表) {函数体语句 return表达式 }//加法函数,实现两个整型相加

2021-09-15 16:10:05 114

原创 第五章——数组

5.1概述定义:数组是一个集合,里面存放了相同类型的数据元素特点:1.数组中的每个数据元素都是相同的数据类型。2.数组是由连续的内存位置组成的。5.2.1 一维数组定义方式:1.数据类型 数组名[ 数组长度 ];2.数据类型 数组名[ 数组长度 ] = { 值1,值2 ....};3.数据类型 数组名[ ] = { 值1,值2 .....};实例#include<iostream>using namespace std;int main(...

2021-09-14 15:44:01 198

原创 第四章——程序流程结构

最基本的三种程序运行结构:顺序结构:程序按照顺序执行,不发生跳转选择结构:依据条件是否满足,有选择的执行相应功能循环结构:依据条件是否满足,循环多次执行某段代码4.1选择结构4.1.1 if语句作用:执行满足条件的语句分类: 1.单行格式if语句: 格式:if(条件){条件满足执行的语句}实例#include<iostream>usi...

2021-09-10 20:06:23 253

空空如也

空空如也

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

TA关注的人

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