自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 问答 (8)
  • 收藏
  • 关注

原创 坦克大战easyx实现

在01星球合作写的一个项目,总算不是控制台程序了,将就吧。代码不小心都放在一个源文件了,源码就不用看了。链接:https://pan.baidu.com/s/17PI4mMjW-RfygXp1yS5IjQ?pwd=gzwb提取码:gzwb--来自百度网盘超级会员V1的分享...

2022-05-01 08:30:00 681

原创 拨开const与constexpr迷雾

一文搞懂两者本质区别!

2022-03-02 11:15:23 597

原创 C++11总结思维导图

前段时间笔者发现,由于没有写项目来持续输出,导致之前学的C++很多内容都已逐渐淡忘,且所学内容难成知识体系。为了有效解决这一问题,笔者想到了用知识导图的方式来归纳,总结所学内容,且取得了不错的效果。目前已整理好C++11新增内容的知识导图,如有朋友需要,可自行下载。温馨提示:此思维导图只用于总结归纳重要知识点,如果要系统学习,还请看书。打开此导图需要下载亿图脑图。链接:https://pan.baidu.com/s/1JVH304mQxvjhfc3QIrk60w?pwd=gzwb提取码:gzwb...

2022-02-28 09:06:05 640

原创 对C++11模板可变参数中扩展包的理解

本文不详细讲解如何在模板中使用可变参数,只浅谈对其中扩展包的理解。看本文前建议先学习如何使用可变参数,推荐链接:C++11在函数模板和类模板中使用可变参数 (biancheng.net)一.对代码格式的理解为方便起见,笔者直接把理解写进注释。 如何证明第8行和第9行的 ... 作用于其后而非其前?不难,用括号验证即可:第二张图报错 如何理解args与argv? args的作用和T一样,是一种类型,由此可推出args应该是指(模板)参数包类型。那么就可以顺利推出:第9行的argv就...

2022-02-14 18:05:33 856 2

原创 详细剖析平衡二叉树的四种旋转(附C++代码)

经过一天的学习,笔者发现网上少有人剖析平衡二叉树为何要分为四种旋转情况(尤其是LR型和RL型旋转),学习起来感觉云里雾里。查阅相关资料后,笔者整理了以下几种解释,其中夹杂着笔者自己的理解(笔者也是初学,水平不足,如有缺漏错误的地方,望读者指出)。一.单向右旋(RR)和左旋(LL)1.这个很好理解,可以把节点3的位置看作一个定滑轮(支点),滑轮左边的绳子较长,无法平衡,那么就把1-2-3绳子往右拉,则节点2就被拉到了支点处,左右两边绳子长度相等,重量均匀,则保持平衡。看下面一种情况:.

2022-02-10 16:55:54 4402 3

原创 二叉排序树的创建,查询,删除,遍历和插入(C++类实现)

视频教程推荐:懒猫老师-数据结构-(58)二叉排序树的删除(二叉查找树)_哔哩哔哩_bilibili直接上代码,有简单注释。#include<iostream>#include<array>#define DataType intusing namespace std;struct BST_node{ DataType data; BST_node *left; BST_node *right;};class BST{private: BST_n

2022-02-09 11:43:09 1106

原创 size与capacity的区别

先放代码:下面讨论size与capacity的区别:size一定与动态数组aha声明时的大小(即1000)相等,它是我们显式预定的空间。 而capacity则是系统数组在内存中连续空间的总大小,也就是说,我们可能申请了100大小的内存,但系统开辟空间时,给我们开辟了200大小的连续内存,这多出来的100,可以理解为备用空间。我们自己使用时,只能使用size大小内的空间(除非在尾部先添加),而不能直接使用备用空间(如下标越界)。 一般而言,size=capacity ,此时没有备用空间。如果

2022-02-05 18:05:00 2529

原创 Socket+华为云 实现广域网五子棋在线对战

几天前本人刚入门了Socket通信编程,粗略地理解了代码段的含义便迫不及待地把以前写的五子棋程序改成了联机版。但联机版程序只能在局域网下使用(也就是只能在一个wifi下联机),与其这样,还不如两个人使用一台电脑玩线下版呢。所以想进一步升级,使其在广域网下也可联机,而这后面的过程,差点没把我整猝死。 去百度搜索如何实现广域通信,大多是内网穿透,云服务器。用了花生壳,路由侠映射端口,不行;设置...

2022-01-27 01:22:08 1577 4

原创 邻接矩阵的创建(有向,无向,网,图)

#include<iostream>#include<limits>#include <iomanip>//控制cout的输出格式的函数所需要的头文件#define vertex_type char#define weight_type int #define VERMAX 20using namespace std;enum gragh_type{DG,UDG,DN,UDN};//D-directed UD-undirected G-gragh .

2022-01-23 12:11:19 1028 1

原创 彻底搞懂克鲁斯卡尔(Kruskal)算法(附C++代码实现)

一文理清克鲁斯卡尔算法!

2022-01-20 15:17:02 8261 13

原创 字符变量与字符常量

字符变量与字符常量的区别

2022-01-19 16:32:39 4258 1

原创 一文搞懂声明与定义,初始化与赋值的区别

学了将近5个月的C和C++,一直不曾弄懂声明与定义,初始化和赋值的详细区别,直到今天才有所顿悟,学而不精,惭愧。声明与定义的区别:声明分为引用型声明与定义型声明。前者是声明外部变量,如 extern int a,不会为变量分配内存。后者是在声明一个新变量并分配内存,如 int a; 只不过全局变量会默认初始化为0,而局部变量仍然是内存中的垃圾值。 定义为变量分配内存空间,等价于定义型声明。很多地方直接将声明和定义的区别解释为:声明就是 int a; 定义就是 int a = 1;...

2022-01-06 23:06:08 3599 1

原创 大作业:冬奥会志愿者信息管理系统

本作业要求稍显奇葩,要求所有操作都必须在.txt文本文件中进行,如下:本次作业遇到的主要难题是FILE.eof()函数对文件的处理,如下:运行过程中发现while进入了死循环。仔细勘察后发现,应该是FILE.get()读取了文本中的‘1’,导致FILE无法读取到任何数字字符并传入num,导致FILE的文件指针不向后偏移,故而FILE.eof()始终为假,从而陷入死循环!所以数字和文字混合读取时需要小心! admin.cpp​​#inclu...

2021-12-28 20:16:58 2033 2

原创 八皇后问题回溯算法

#include<iostream>#include<vector>using namespace std;int dir_x[8] = { -1, -1, -1, 1, 1, 1, 0, 0 };//创建两个方向数组int dir_y[8] = { 0 , 1, -1, 0, 1,-1, 1,-1 }; // L LU LD R RU RD U D L左,R右,D下,U上 void copy_attack(int(*a.

2021-12-25 23:48:15 410

原创 哈夫曼树及哈夫曼编码(C++实现)

哈夫曼树构建图解,快速上手!

2021-12-11 21:05:20 1937 2

原创 二叉树的线索化及其遍历(前序和中序)

#include<iostream>using namespace std;enum Tag { link, thread };typedef struct Bitree{ char sign; int data; Bitree* left; Bitree* right; Tag ltag; Tag rtag;}bi_node;void cre_tree(bi_node* &node);//注意引用,比二级指针更方便//————————————————————.

2021-12-08 23:55:02 723 4

原创 命名空间和头文件的区别与联系:

首先要明白重要的一点:必须先声明命名空间,后声明对命名空间的使用(using)!如下:注意,不可忽略using namespace mine!接下来讨论命名空间和头文件的区别与联系:1.命名空间是放在头文件中的。(然而在C++PrimerPlus第269页最下面一段却如此表述:“#include语句将头文件iostream放在名称空间std中”,本人不明白这句话是什么意思,希望高人指点)如下:(函数的声明和实现分开)2.预处理期间,test.cpp中的”mine.h”头文件会被

2021-12-04 18:04:15 2719 2

原创 详解#ifndef处理头文件嵌套

#ifndef处理头文件嵌套:每个yuan文件都只能包含一次某个头文件;但有的时候,在b头文件中声明原型时,必须要用到a头文件中的内容,如下:yuan2.h中声明dis()函数原型就需要用到yuan.h中的Stu类声明;而这样的话,在main函数所在的.cpp文件中,就无法同时include”yuan1.h”和“yuan2.h”,因为“yuan2.h”包含“yuan1.h”,这样就会在这个.cpp文件中出现两次“yuan1.h”。然而在预处理时,编译器会将头文件声明所在的地方直.

2021-12-03 19:31:25 1592

原创 对树的递归遍历的理解

树的递归遍历图解

2021-12-02 23:24:13 1068

原创 C语言实现大富翁

#define _CRT_SECURE_NO_WARNINGS 1#define __STDC_WANT_LIB_EXT1_ 1#include<stdio.h>#include<time.h>#include<windows.h>//空白-0 ■-1 │-2 ┬ -3 — -4 ┌ -5 ┐-6 ├ -7 ┤-8 typedef struct line{ int p1_row; int p1_col; int.

2021-11-24 13:18:37 4357 7

原创 双向链表实现贪吃蛇

#define _CRT_SECURE_NO_WARNINGS 1#define __STDC_WANT_LIB_EXT1_ 1#pragma warning(disable : 4996)#include<stdio.h>#include<string.h>#include <stdio.h>#include <conio.h>#include<time.h>#include<windows.h>typedef s.

2021-10-11 22:43:21 1143

原创 C语言实现简单的五子棋

#define _CRT_SECURE_NO_WARNINGS 1#define __STDC_WANT_LIB_EXT1_ 1#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>//┌ ┬ ┐├ ┼ ┤└ ┴ ┘│─●○//属性设置:0—白棋 1—黑棋 2—无棋int board[20][20];//注意这个二维数组为全局更方便int Boar.

2021-09-17 12:22:24 1016 4

空空如也

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

TA关注的人

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