自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ych9527的博客

不积跬步无以至千里

  • 博客(25)
  • 问答 (1)
  • 收藏
  • 关注

原创 C语言编写数独小游戏

文章目录1.前言2.效果展示3.代码1.前言这次数独小游戏的灵感来源于上次力扣做的题目,解数独。正好利用题目余热写了这一款小小游戏。感兴趣的可以看看题目,哈哈2.效果展示3.代码#pragma once#include <stdio.h>#include <graphics.h>#pragma warning (disable :4996)#include <windows.h>#define SIZE 700 //背景大小#define

2021-03-31 16:58:23 2356 2

原创 进一步了解系统I/O

文章目录1.再次理解open接口1.再次理解open接口

2021-03-31 10:00:36 4004 6

原创 string类的模拟实现

文章目录1.简单string类的模拟实现1.1构造函数编写需要注意的几点1.简单string类的模拟实现1.1构造函数编写需要注意的几点namespace ms{ class string { public: string(char *str="")//等价于char *str="\0" NULL等价于'\0',strlen时会报错 :_str(new char[strlen(str) + 1]) { strcpy(_str, str); } ~strin

2021-03-30 18:22:53 272

原创 回溯法题目合集——叁

文章目录1.子集21.子集2给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。题目链接.解析过程:返回所有子集,因此不存在判断条件和剪枝条件,每一次递归都需要将临时数组内容拷贝至二维数组之中求子集是求组合,因此元素不能有重复解,因此需要传递一个sub变量作为下标,来控制用过的元素不会再用数组中有重复元素,因此需要去重,去重方法是先排序,再给一个标记数组,如果当前元素和前面一个元素相等,且前面一个元素没有被标记,那么跳过当前元素,进行

2021-03-27 14:53:16 1058

原创 走进字符串函数

文章目录1.前言2.字符串的复制3.字符串的比较3.字符串的拼接4.查找一个字符5.查找任意几个字符6.查找一个子串7.统计字符串连续匹配字符的个属于8.分解字符串1.前言字符串函数的头文件是<string.h> ,字符串函数都有返回值,但是平时很少有人关心它们。用字符串函数对自身操作的结果都是未定义的,并没有标准会指明它们会产生什么样的结果2.字符串的复制strcpy和strncpy3.字符串的比较strcmp和strncmp,需要注意的是,字符串比较并不是返回布尔值,不能直接用

2021-03-26 15:49:17 1868 3

原创 动态规划题目集合——贰

文章目录1.零钱兑换2.最大正方形1.零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。题目链接题目解析:1.动态规划首先需要知道问题的最后一步是什么,我们是要求达到总金额x时最少的硬币总数2.知道最后一步我们就要推导问题的子问题,我们有coins种硬币,那么在求达到总金额x的时候的硬币数量,我们需要求达到金额x-y价值硬币时的硬币数量,这

2021-03-24 08:14:55 228 2

原创 模拟实现迷你shell、系统文件I/O

文章目录1.模拟实现shell1.1思路2.2实现代码1.模拟实现shell1.1思路1.我们的shell需要展示当前用户、主机、当前目录、命令行提示符我们知道,shell中这些是一直在显示的,因此需要一个while循环来控制,即每次进程开始都需要打印这一串字符串2.需要能够获取命令行获取命令,可以建立一个字符数来存储命令行,通过fgets来从标准输入获取需要注意的是fgets会将最后一个换行符带入字符数组中,需要注意同时通过strtok将输入的字符串分解成标准的命令模式3.需要能够解析命

2021-03-22 16:44:16 417 1

原创 回溯题目集合——贰

文章目录1.组合总和2.组合总和贰3.组合总和叁1.组合总和给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。题目链接解析:1.需要传递的参数有:临时数组用来临时保存获得的元素。二维数组,当条件满足时将临时数组内的元素拷贝至二维数组。计数器,用来统计当前临时数组内

2021-03-21 21:07:41 923 2

原创 了解STL、初识string

文章目录1.STL1.1 什么是STL1.2 STL六大基本组件1.3为什么要学习STL1.4STL的缺陷2.什么是string类2.1为什么学习2.2了解string类3.string成员函数3.1 string构造函数3.2string类对象容器(数据结构)操作4.string类对象的访问和遍历1.STL1.1 什么是STLSTL是C++标准库的重要组成部分,不仅仅是一个可复用的组件库,还包罗数据结构与算法的软件框架;STL的原始版本出自惠普实验室,并且进行了开源,允许任何人进行任何操作,唯一条

2021-03-20 12:30:32 2060 4

原创 回溯算法

文章目录1.什么是回溯2.解题方法3.实战演练3.1路径的总和3.2路径总和貮3.3子集3.4全排列3.5全排列貮3.6组合1.什么是回溯顾名思义,回溯就是回头的意思。比如我们要达到一个目的地,但是我们面前有三条路,并且只有一条路是可以到达目的地的,因此我们需要一条一条去尝试,如果不行的话就得回到原点,选择下一条路进行尝试,这种就叫做回溯。在我们做题中,常见的组合问题,路径问题,使用回溯法,往往事半功倍。2.解题方法1.将问题描述成树形结构描述成树形结构有利于寻找思路2.通过树的关系,找出子

2021-03-18 22:33:28 3711 3

原创 圆圈中最后剩下的数字(约瑟夫环)

文章目录1.题目2.分析1.题目0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。题目链接2.分析...

2021-03-16 12:21:14 211

原创 Linux——进程控制

文章目录1.进程的创建2. fork函数返回值2.1 fork为什么有两个返回值2.2 为什么给子进程返回0,给父进程返回子进程的pid?3 写时拷贝3.1代码为什么要共享3.2数据为什么要私有3.3何谓写实拷贝3.4实例分析4.fork常规用法和调用失败原因5.如何理fork和子进程创建6.进程终止5.1进程退出场景1.进程的创建fork在已存在进程之中创建一个新的进程,这个被创建的进程称之为子进程,原来已知的进程称之为父进程;进程是由可执行程序和它对应的数据和代码以及一堆数据结构组成(PCB,虚拟

2021-03-15 20:16:21 1103 8

原创 初识动态规划

文章目录1.什么情况下使用动态规划2.常见动态规划题型3.动态规划的设计步骤4.实战演练4.1求机器人不同路径4.2 礼物的最大价值4.3硬币4.4三步问题1.什么情况下使用动态规划一个问题可以分解为子问题,且子问题之间具有联系互相影响,同时还需要有最优的子结构注意的是这是一个必要不充分条件,即想要使用动规需要满足这些条件,而满足这些条件不一定适用动态规划2.常见动态规划题型1.计数有多少种方式走到右下角有多少种方法选出K个数使得和是Sum2.求最大最小值从左上角走到右下角的最大数字和最

2021-03-13 21:47:13 1394 12

原创 泛型编程、函数模板、类模板

文章目录1.泛型编程2.函数模板2.1是什么2.2函数模板格式2.3函数模板的原理2.4函数模板实例化2.5模板参数的匹配原则3.类模板3.1类模板的定义格式1.泛型编程编写与类型无关的通用代码作为模板。接下来将介绍函数模板和类模板两种2.函数模板2.1是什么函数模板代表的是一个函数的家族,该函数模板与类型无关,在使用时被参数化,根据实参产生的特定函数模板;2.2函数模板格式template < typename T1, typename T2, … typename Tn>

2021-03-12 17:27:34 220

原创 动态内存管理

文章目录1.C++中为什么要更新动态内存的管理方式2.new/delete用法1.C++中为什么要更新动态内存的管理方式C语言管理内存的方式在C++中还是可以用的,绝大部分语言是具有包容性的。C++中提出了自己的内存管理方式:通过new和delete操作符进行内存管理;既然C语言中的内存管理方式可以用,为什么C++要有新的方法呢?这是因为针对内置类型C和C++的管理方式没有区别,针对自定义类型的时候,malloc和free只管开空间和调用析构函数。new和delete会进行开空间,调构造函数,调析构

2021-03-12 14:48:33 1054 4

原创 递归算法

文章目录1.何谓递归2.使用递归的要点3.实例1——斐波那契数列3.1题目3.2分析4.实例2——求一个数的阶乘4.1题目4.2分析5.实例3——汉诺塔5.1题目5.2分析6.实例4——反转单链表6.1题目6.2分析7.实例5——对称二叉树7.1题目7.2分析8.实例6——平衡二叉树8.1题目8.2分析1.何谓递归递归算法是在函数或者子过程的内部,直接或间接的调用自己的算法;简而言之:递归算法实际上是将问题转化为缩小了的同类问题的子问题,然后再递归调用函数或者过程来解决问题2.使用递归的要点1.递

2021-03-11 18:33:05 1839 1

原创 日期类题目汇总

文章目录1.前言2.天数的累加2.1题目2.2解题思路3.一年中的第几天3.1题目3.2解题思路4.打印日期4.1题目4.2解题思路5.日期差值5.1题目5.2解题思路1.前言学而不思则罔,做题的同时做好归纳总结才能更好的提升自己,这次将日期类的题目总结归纳一下2.天数的累加2.1题目题目描述设计一个程序能计算一个日期加上若干天后是什么日期。输入描述:输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。输出描述:输出m行,每行按yyyy-mm-dd的个数输出。牛

2021-03-10 18:17:07 1079

原创 Linux——进程地址空间

文章目录1.什么是进程地址空间2.为什么要有进程地址空间2.1直接在物理内存上进行数据存储的危害2.2解决的办法3.管理进程地址空间1.什么是进程地址空间1.如下图所示,就是我们的进程地址空间概念图,从下至上依次是,代码区、常量区、全局数据区、堆区、共享区、栈区、命令行参数环境变量区、堆区。从下至上地址逐渐增加,可以通过编写程序来进行验证;2.进程并不是一直占用所有的地址空间资源,地址空间是进程的活动范围再来打个比方,你家里有个一万平的院子,这个院子就是你的活动范围,有游泳区,美食区,休闲区,运动

2021-03-08 18:45:53 515 3

原创 Linux——环境变量

文章目录1.环境变量是什么2.如何查看环境变量3.和环境变量相关的命令4.通过代码获取环境变量1.环境变量是什么环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数;比如我们再编写代码的时候,从来不知道我们链接的动静态库在哪里却可以链接成功,这是因为有相关的环境变量在帮助编译器进行查找;环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性举个例子:2.如何查看环境变量echo $NAME,查看环境变量,NAME为环境变量名称PATH是环境变量中的一个,我们还有许多环境变

2021-03-08 11:00:24 3911 9

原创 贪吃蛇小游戏——C语言编写

文章目录1.效果展示2.设计思路2.1图案显示2.2蛇头的移动2.3食物的生成2.4蛇身体的生成与移动2.5判断是否撞墙和打印得分3.完整代码1.效果展示2.设计思路2.1图案显示利用二维数组构建图案,总共有墙壁,蛇头,蛇身,食物,空白五种元素,因此只需要二维数组中的元素有五种不同的值即可;2.2蛇头的移动贪吃蛇是会自动移动的,我们首先让蛇头能自动移动。由于我们用数组来表示元素在地图中的位置,让元素移动就是让元素的坐标改变。因此我们需要构建函数来完成蛇头坐标的自动移动,同时需要对我们输入

2021-03-07 20:17:47 12235 49

原创 类和对象——登堂入室

文章目录1.构造函数之初始化列表1.1构造函数体赋值1.2初始化列表1.2.1是什么是初始化列表1.2.2需要注意的几点1.构造函数之初始化列表1.1构造函数体赋值在创建对象时,编译器会通过调用构造函数,给对象中各个成员变量一个合适的初始值,如下图代码所示:如上图所示,尽管构造函数被调用后,对象中已经有了一个初始值,但是这不能称为类对象成员的初始化。因为调用构造函数的时候就已经进行了对象成员的定义,构造函数体内的语句只能将其称之为赋初值。且初始化只能初始化一次,而构造函数体内可以多次赋值1.2

2021-03-06 11:11:23 3847 23

原创 Linux进程初识

文章目录1.进程是什么2.描述进程-PCB2.1为什么要描述进程2.2PCB和task_struct2.3task_struct内容分类3.查看进程4.通过系统调用获取进程标识符5.通过系统调用创建进程——fork5.1fork初识5.2进一步了解fork1.进程是什么程序的一个执行实例,正在执行的程序等。担当跟配系统资源(cpu时间,内存)的实体。2.描述进程-PCB2.1为什么要描述进程便于对进程的管理2.2PCB和task_struct进程信息被放在一个叫做进程控制块的数据结构中,可

2021-03-03 19:54:02 383

原创 source insight4.0破解版下载及使用方法

文章目录1.下载方式2.安装方法3.如何查看Linux源核代码1.下载方式网盘链接.提取码:6q7n2.安装方法第一步:第二步:第三步:第四步:3.如何查看Linux源核代码1.网上搜索下载linux源代码2.将源代码解压好后,打开source insight...

2021-03-03 17:43:25 62979 41

原创 类和对象的应用练习——日期类

#ifndef _DATE_H_#define _DATE_H_#include <iostream>using namespace std;class Date{public: int GetMonthDay(int year, int month);//获取某年某月的天数 Date(int year = 1999, int month = 1, int day = 1);//全缺省构造函数 void Print();//打印函数; Date(const Date

2021-03-01 22:11:18 294

原创 类和对象——略领天机

文章目录1.类的6个默认成员函数2.构造函数2.1构造函数是什么2.2构造函数的特征3.析构函数3.1析构函数是什么3.2析构函数的特征4.拷贝构造函数4.1拷贝构造函数是什么4.2拷贝构造函数的特征5.赋值运算符重载5.1运算符重载5.2赋值运算符的重载1.类的6个默认成员函数如果一个类中什么成员都没有,简称空类。空类中并不是什么都没有,任何一个类在我们不写的情况下,都会自动生成6个默认成员函数;默认成员函数是由编译器自动生成,我们写了就使用自己写的。我们学习编写默认成员函数是因为编译器自动生成的默

2021-03-01 17:51:25 380

空空如也

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

TA关注的人

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