自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 从源码编译GCC13

【代码】从源码编译GCC13。

2023-03-30 02:13:40 1112 1

原创 Arch 安装Boost

Arch 安装boost

2022-11-12 04:50:41 276

原创 CPP filesystem

cpp 17 filesystem 库的学习笔记

2022-10-10 01:31:58 375

原创 C/CPP 条件编译判断系统类型

C/CPP 在预编译阶段判断系统类型

2022-08-09 10:31:08 1580

原创 使用CE进行扫雷

ce玩扫雷

2022-08-02 14:17:00 447

原创 DLL及SO文件的创建和使用

Dll此处只演示使用vs生成dll文件的方法,生成dll.cpp:extern "C" __declspec(dllexport) int Add(int val1, int val2){ return val1 + val2;}extern "C" __declspec(dllexport) int Mult(int val1, int val2){ return val1 * val2;}vs在创建正常的项目后,将项目属性=>配置属性=>常规=>配置类型改为动态

2022-01-07 17:29:26 1610

原创 C++ 随机数

rand的缺点:很多程序需要使用不同范围的随机数,想应用需要随机浮点数,一些程序需要非均匀分布的数而程序员为了解决这种问题会试图转换rand生成的随机数的范围,类型或分布,这样会引入非随机性为了解决这一问题,C++不应该使用rand,而应当使用random中的随机数引擎类和随机数分布类#include <iostream>#include <random>#include <vector>using namespace std;unsigned get

2021-07-24 09:32:37 110

原创 C++ 类模板

Tclass.h 如下#include <iostream>#include <map>using std::cin;using std::cout;using std::endl;// 声明模板templ,便于添加友元template<typename T>class Templ;// 下面声明的两个模板函数相同// template<typename T> T fun(T te){ }// template<typename

2021-07-20 20:25:24 84

原创 C++ 函数模板

#include <cstdio>#include <iostream>#include <ostream>#include <string>using std::cin;using std::cout;using std::endl;// 模板定义以关键字template开始,后面跟着模板参数列表// 即<tempname T1,class T2>类型参数前需要使用tempname或者class,在这里template和cla

2021-07-20 20:22:35 82

原创 C++ operator 重载

1 重载的运算符的本质是函数2 我们不能重载内置类型的算数运算符3 重载运算符应被定义为普通非成员函数还是成员函数规则,如下:赋值(=),下标([]),调用(()),和成员访问箭头(->)运算符必须是成员复合赋值运算符一般应该是成员,但是并非必须~改变对象状态的运算符或者与给定类型密切相关的运算符,自增++,自减–,解引用*,成员访问运算符.通常应该是成员函数具有对称性的运算符可以转换到任意一端的运算对象,例如算术,相等性,关系和位运算符等,因此他们通常应该是普通的非成员函数#inc

2021-07-06 23:54:04 679 5

原创 C/C++中的赋值表达式结果不同

C和C++中的赋值表达式结果略有不同,先说结论:C中赋值表达式返回的是一个右值C++中赋值表达式返回的是一个左值如以下代码int a;a = 10; //C中此表达式的结果为10,而在c++中此表达式的结果为a论据:在C中写以下代码是不能通过编译的int a;int *p = &(a = 10);错误信息如下:这说明此表达式的最终结果为一个右值,即10.但在C++中int a;int *p = &(a=10);printf("%p\n%p\n",p,&a

2021-07-03 00:15:14 418

原创 记一次简单的不入门逆向

记一次简单的不入门逆向前段时间学习汇编,但最近苦于没流量了,于是写了几个简单的逆向来分析下由于目标exe是一个x64下,od不能用,所以我们选择使用的工具是x64dbg目标软件如下:这个程序很简单,输入一个pass (这里我们不考虑溢出问题),如果输入内容和"123456"一致那么就认为密码正确,否则输出密码错误修改前运行如下:开始修改将目标程序拖入x64dbg点击运行寻找程序入口 push,mov,sub 浓浓的main的味道,并根据右侧的注释我们可以得知我们已经到达了ma

2021-06-28 19:59:14 425

原创 Opengl封装着色器并使用纹理填充图形

对着色器程序,VAO,VBO等进行了封装,并使用纹理其实就是贴图 来填充图形main.cpp#include <glad/glad.h>#include <GLFW/glfw3.h>#include <iostream>#include "stb_image.h"#include "shader.h"#include "VO.h"void monitor(GLFWwindow* win, int W, int H) { glViewport(0, 0,

2021-03-08 22:48:32 548

原创 绘制的图形颜色不断变化

glfw绘制三角形

2021-02-09 19:13:09 261

原创 使用多个VAO,VBO和着色器程序来绘制两个不同颜色三角形

#include <glad/glad.h>#include <GLFW/glfw3.h>#include <stdio.h>#include <stdbool.h>void monitor(GLFWwindow* win, int W, int H) { glViewport(0, 0, W, H); return;}// 输入监听void Input(GLFWwindow* window) { // 如果按下ESC按键,如果按下返回

2021-02-08 16:23:03 798

原创 GLFW绘制两个三角形拼接为一个矩形

#include <glad/glad.h>#include <glfw/glfw3.h>#include <stdio.h>#include <stdbool.h>/*改变窗口大小参数列表窗口指针,修改后的宽,高*/void framebuffer(GLFWwindow* window, int W, int H) { glViewport(0, 0, W, H);}// 输入监听void Input(GLFWwindow* wi

2021-02-08 00:36:03 347

原创 glfw绘制一个三角形

#include <glad/glad.h>#include <glfw/glfw3.h>#include <stdio.h>#include <stdbool.h>/*改变窗口大小参数列表窗口指针,修改后的宽,高*/void framebuffer(GLFWwindow *window ,int W,int H) { glViewport(0, 0, W, H);}// 输入监听void Input(GLFWwindow* win

2021-02-07 17:01:13 587

原创 glfw创建窗口

以下代码实现了使用glfw来创建一个窗口#include <glad/glad.h>#include <glfw/glfw3.h>#include <stdio.h>#include <stdbool.h>/*改变窗口大小参数列表窗口指针,修改后的宽,高*/void framebuffer(GLFWwindow *window ,int W,int H) { glViewport(0, 0, W, H);}// 输入监听void

2021-02-07 13:56:21 552

原创 BFS模板

忘记具体是哪个题目的代码了贴出来当作模版记录一下#include<iostream>#include<string.h>#include<queue>using namespace std;int arr[25][25];//存储是否被访问的标志char vis[25][25];//存放字符组int num;int H, L;//行,列struct node { int x; int y;};//用来存放坐标int fx[] = { 1,0,0,

2021-01-22 22:06:22 157 2

原创 fclose函数的作用

我们知道fclose(FILE *)可以关闭文件流,但是我们偶尔也会发现似乎不加也没有什么问题.那我们还加他干嘛,那不浪费感情么(开玩笑,别当真,怕被打)一.清空相关的缓冲区以写文件为例,程序会先将文本信息存入缓冲区中,然后根据缓冲区刷新指令或者等缓冲区满了以后才向文件写入,那么我们如果不使用fclose()关闭流,就有可能有部分文本信息在缓冲区中没有写入到文本文件中,从而导致文本信息缺失.但是这东西看运气.二.释放内存我们知道,如果我们不手动关闭这个流,系统会维持打开的状态,维持当然需要消耗

2021-01-15 19:32:36 3066

原创 双向循环链表的冒泡排序

双向循环链表的冒泡排序之前和群友水群的时候被认为双向循环链表不能实现冒泡排序,于是实现了一下,哪有什么不能的 ,下面是纯c的代码实现.如果错误还请指正.#include <stdio.h>#include <stdlib.h>int n = 0;//链表中的数据的数量++struct Two_way_list{ struct Two_way_list* front; struct Two_way_list* behind; int val;};v

2021-01-06 10:48:02 544 1

原创 c中char类型截断和大小端小记

习惯上书写的时候从左到右是高字节到低字节,小端是将数据的高字节保存在高地址中大端是将数据的高字节保存在低地址中char temp = 'asd'其中a就是高字节,小端中放在高地址,大端中放在低地址因此截断留给你的始终是低地址,因此在大端中留给你a,小端中留给你的是d(应该是这样,有错的话麻烦大佬指正吧= =)...

2020-11-20 19:50:06 538

原创 记一次Sunday算法的实现

记一次Sunday算法的实现,相较与KMP算法而言Sunday算法更加容易理解和实现(听说查找速度也更快)#include <stdio.h>#include <string.h>int sunday(char *str1,char *str2,int len1,int len2){ int shift[254] = {0}; //默认全部初始化为 len2 - 1 for(int i = 0;i < len2 ; ++i){ shift[i] = len

2020-11-15 20:47:56 76

原创 gcc处理的四个阶段

源文件到可执行文件可以分为四个阶段:预处理 ->编译->汇编->链接gcc -E temp.c -o temp.i (生成预处理文件temp.i)gcc -S temp.i -o temp.s(生成汇编代码文件temp.s)gcc -c temp.s -o temp.o(生成目标文件temp.o)gcc -o temp.o -o temp(生成可执行文件temp)...

2020-09-06 16:50:09 147

原创 vim的常见操作

来源https://www.imooc.com/learn/1129 一位大佬的免费课程,大家可以去看下.这是我做的一些笔记,用来在忘记一些操作时查询,拍版可能存在一些问题,大家将就看吧.下载与安装:win下可以下载Gvim进入vimvim命令进入vim vim不同模式下的操作:普通模式(用vim打开文件时的默认模式) 水平移动: h(左)j(下)k(上)l(右)移动光标 数字0移动到当前行的第一个字符处,'^'跳转到第一个非空白字符处 '$

2020-07-11 10:39:06 119

原创 判断编译器和C/C++版本

判断编译器支持的C/C++版本C众所周知,可以通过宏__STDC_VERSION__判断C的版本各版本__STDC_VERSION__值如下表版本__STDC_VERSION__C99前不支持该宏C99199901LC11201112LC18(C17)201710L可以用printf("%ld\n",__STDC_VERSION...

2020-05-06 11:15:27 10151 4

原创 vector容器的基本用法举例(无实现)

vector首先需要包含头文件<vector>创建方式:vector<int>V创建了一个元素均为int的容器Vvector容器支持随机访问和迭代器访问函数作用v[n]随机访问v.clear()清空容器v.size()返回容器元素数量v.back()返回容器的最后一个元素v.front()返回容器的第一个元素...

2020-05-05 16:31:04 158

原创 C语言中fopen函数使用举例及打开方式列表

C语言中fopen函数使用举例及打开方式列表虽然用的是c++的头文件,但是是c的代码,建议纯c的小伙伴把头文件换掉,并删除using namespace std;#include<iostream>using namespace std;int main() { int ch1, ch2; FILE* fin, * fout; fin = fopen("输入.txt"...

2020-05-04 22:44:16 907

原创 C++实现简单的从文本读写数据

C++实现简单的从文本读写数据以下代码可直接运行:#include<fstream>#include<iostream>//ifstream和ofstream从该头文件取得using namespace std;int main() { ofstream fout; ifstream fin;//这两个变量的定义由头文件<fstream>包含...

2020-05-04 22:40:26 330

原创 记录一下KMP实现

KMP的实现没有过程的讲解,只是记录一下我的实现(其实是copy)KMPKMP的代码实现:查找目标串在主串中的重复次数:#include<stdio.h>#include<string.h>#include<stdlib.h>char W[10005], T[1000005];int len_W, len_T;void next_(i...

2020-05-03 11:54:54 124

原创 函数求最大(小)值时存在数据为空的情况时

一般而言:我们的求最大(小)值函数一般如下:int max_num(int* temp, int n) { //temp接收的是一个数组,n接收数组中数据的个数 if (n == 0)//列表中数据个数为0 return -1;//-1作为列表为空的标志 int max = temp[0];//初始化max for (int i = 1; i < n; i++) {//遍历...

2020-04-15 18:46:03 306

原创 C语言中malloc的返回值类型是void*

今天看到一个malloc在使用时没有进行强制类型转换即没有(node*)malloc(sizeof(node)),大致查了一下: C的malloc返回的指针是void*,因此可以不强制进行类型转换,但是在C++中使用malloc需要强制转换类型(听说new和delete挺香的),为了安全和可读性,暂时觉得还是malloc还是应该强制转换一下....

2020-04-15 12:00:40 1185

原创 最小周期字符串出现次数

如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期.例如,abcabcabcabc是以3为周期(可以是以6或12为周期)输入一个字符串,输出最小周期.代码如下:#include<iostream>#include<string>using namespace std;int main() { string str; in...

2020-02-13 14:33:38 222 2

win下纯C实现的贪吃蛇

使用了一些windows的接口,纯C完成,可能会有乱码,因为是在utf-8的环境下写的,如果出现乱码可以联系我,也可以自行搜索一些编码转换的方法

2021-01-18

空空如也

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

TA关注的人

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