自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

webgpu

webgpu

  • 博客(20)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++单例模式简单实现

单例模式就是。。只能有一个实例化。像一个游戏中。你这个NPC只有一个。不能多次创建 大概酱紫怎么弄呐class A{public:static A*getInstance();//这个获取实例private:A();static A*m_Instace;}A* A::m_Instance=new A;//初始化A*A::getInstance(){

2017-02-20 22:05:07 300

原创 C++ 字符串转化为数组 有负数 数字之间为空格间隔

void strToint(){gets(str); int k = 0; int num = 0; for (int i = 0; str[i] != '\0'; i++) { if (str[i] == '-')//遇见负号 { i++; while (str[i] != ' '&& str[i] != '\0') { num = num * 10

2017-02-19 21:10:16 1364

原创 LIS.学习C++ 最长上升序列

给一串数 33 4 2 324  44 55  最长上升的序列是 33 44 55 值为3 序列不唯一 长度是唯一的怎么搞喃 弄一个dp[max]数组 存放到达每个位置时候的最长序列for(int i=1;i for(int j=0;j  {if(a[j]dp[i] )dp[i]=dp[j]+1; }酱紫就把整个DP都处理好了。直接输出最大的那个就可以了。来完整马

2017-02-19 18:52:37 1452

原创 C++ linux入门 环境

入门第一步弄个云服务器 弄个可以编译CPP代码的环境 嗯1元腾讯学生云服务器。我用的centos 7.2进去就yum install gcc安装好gcc 再 yum install g++ g++就有了 就可以开始写C++程序了 如果要包含c++11 可以alias g++='g++ -std=c++11'然后g++ 1.cpp-o out ./out 可以看见

2017-02-18 21:46:54 266

原创 接着学习C++哈夫曼编码

昨天 已经构建了哈弗曼树了。哈夫曼编码 就是从底倒着往前走 如果这点是左子 0右子1 直到根  而且每个编码都不能是别的编码的前缀上完整马 看注释哈#ifndef H_HPP#define H_HPP#include //1 2 4 6 每两个顶点 都把权值相加合成一个新顶点 直到剩下一个点 就构建完成这个哈夫曼树了。 // // 13

2017-02-18 11:05:27 266

原创 学习C++哈弗曼树

每次找出最小的俩顶点 构建一棵小树 再跟原来的树拼起来。就成了新的树。。直到只剩1个顶点 构建成功#ifndef H_HPP#define H_HPP#include // 栗子 1 2 4 6  每两个顶点 都把权值相加合成一个新顶点 直到剩下一个点 就构建完成这个哈夫曼树了。 // // 13// 6 7//

2017-02-17 23:49:55 304

原创 学习C++拓扑排序

大概意思就是必须过了A才能到B这种关系。每到一个点 必须有前提条件酱紫思路是找到入度为0的点。加入一个栈或者队列这些容器 然后 挨个找与之相连系的点 。然后由于这个顶点已经被用了 那么被指向这些点的入度就可以-1 然后当有一个度变成0了,就把他加入容器里,接着循环找入度为0的顶点。有点像BFS。这每一个入度为0的顶点。就是拓扑排序出来的顺序了。完整马  

2017-02-17 12:55:49 252

原创 Floyd算法 有向图。

Floyd算法求所有点之间的最短路 可以有负权值  时间复杂度O(n^3)用的是邻接矩阵从 i 到 j 两个点之间。。假设最短路径是 D i j  如果从i到中间任意点k   D i k +D k j这个距离小于了假设的这个D ij 那就把Di j 替换为D i k+D k j用三个for第一个 每一个点都要把所有点当做一次k点 进行刚刚说的比较第二个 代表 i 开始的点第

2017-02-16 16:14:10 1947

原创 图 简单c++邻接矩阵 无向图

邻接矩阵。就是一个矩阵。存储着各个顶点之间的关系 栗子 权值==0 无关联 >0.就有联系而且 因为无向嘛。。是沿着对角线对称的。 这个适合用于稠密图。不然浪费空间了。struct Graph{ char v[555];//顶点 int edge[555][555];//边与边之间的权值 int n, e;//点 边的数量 };class A{public: e

2017-02-15 23:38:51 1024

原创 图 简单滴C++邻接表 无向图

这个邻接表。。就是一个结构体数组。存放着 顶点信息和下一个点的信息。下一个点存着下一个点的信息。有点像简单的哈希表那样子struct PHead head[i] {char VInfo 这个是每个节点的信息 栗子:A B C三个节点 VInfo 分别是A B C 就存储了头结点信息。我是char的嘛。。node  这个就是每个数组保存的链表的第一个节点}struct Nod

2017-02-15 23:09:59 700

原创 C++简单哈希表

简单的哈希表。。一个数组。。装着每一个链表的首地址。需要Node**mListmList=new Node*[size]//这里没初始化for(int i=0;i还有一个生成key的函数return (n^0xdeadbeef ) %size下面是完整马 HPP#include using namespace std;templatestruct Hash_Li

2017-02-12 11:44:55 431

原创 理解一下char**p char*p[]

一开始学的时候,char**p就是指针的指针 那时候没用过 而且也没见过char*p[]就忽略了学习这个东西char*p char p[] 这两个p 都是字符串首地址 char**p char*p[] 也都是一个p指向一个指针(首地址)栗子 char*p[5]就是5个“”字符串 每一个p[i]是一个字符串        char**p 每一个p[i]也都是一个字符串 int p[3

2017-02-11 10:11:55 5462

原创 lua实现KMP字符串匹配。

串S 串P 然后构建Next数组 代表退回的位置。匹配失败 匹配串就往Next[j-1]+1位置从新开始匹配  如果都回到1了 那就可以i++了 lua下标为1开始 和C/C++不一样。这俩都是下标0开始的S={4,3,4,41,46,5}P={3,4,41,46,5} --这里可以试试{3,5,41,46,5} 字符串。可以改的Next={}function makeNext()

2017-02-10 18:08:06 329

原创 LCS最长公共子序列S,P

。俩字符串 S 和 P 求最长公共子序列。把他们当成矩阵dp[][]与i j关系dp[0][0]=0if S[i]=P[j]   dp[i] [j] =dp[i-1][j-1]+1else dp[i] [j] =MAX(dp[i-1][j], dp[i],j-1])就这么几个。也算记忆的数组。然后dp[m][n]就是最大值这个栗子 asb 长度3完整马#

2017-02-09 22:09:06 322

原创 KMP字符串匹配。。学习。

呃 感觉多亏看了一个歪果仁的视频 10多分钟。。不认识是谁 -v-这个算法时间复杂度O(m+n) 不回溯例如 a c b  c a c b         -1 0 0 1 0 1 2  这个是Next数组  当你每次匹配失败时候。。这个匹配串的作用 例如 当时是下标是j,匹配失败了, 就要回到Next[j-1]+1 。。你失败那个位置之前一步肯定没失败吧 不然就不匹配到这了,

2017-02-09 16:57:04 216

原创 简单模板链表。增查删改

一个结构体放node一个链表类 A插入是尾插 中间插入就newNode->插入那个位置的前驱的Next前驱->newNode 就好了HPP#includetemplatestruct Node{ T data; Node*pNext;};templateclass A{public:A(){ pHead = nullptr; }; ~A(){

2017-02-07 14:51:06 246

原创 lua实现快速排序

a={77,5,332,1,3}local low,hight,i,jfunction q(low,hight) local key=a[low] i=low j=hight if(i>=j)then return end while(i<j)do while(ikey)do j=j-1; end if

2017-02-03 22:39:03 834

原创 归并排序

先一直拆分。拆成很小的段 再拼回来 拼的时候顺便把序排了#include using namespace std;int a[5] = { 25, 2, 33343, 5, 1 };void merge(int *a, int first, int mid, int last){ int *b = new int[last - first+1]; int k = 0; int a

2017-02-03 22:11:43 203

原创 快速排序

。把整体分块。排序。void Quick(int*a,int l,int r){int key=a[l];int i=l;int j=r; if(i>=j)return;while(i<j) { while(ikey) j--; if(i<j) a[i++]=a[j]; while(i<j&&a[i]<k

2017-02-03 20:03:36 198

原创 BFS输出路径

BFS就像水那个意思 被挡住的就从边上过去。从0 0 到 3 3 他会扩散过去 这个地图。是随便写的。来看完整马H#ifndef H_H#define H_H#include #include #include #include struct Node{ int x; int y; int feet;};class MAZE{public:

2017-02-01 13:20:49 705

VulkanSDK.zip

去那几个官网下载东西会因为不知名原因很慢,并且有时候会半途下载失败,我把glm glfw-3.3.2.bin.win64 vulkansdk打包一起下载下来了

2020-08-09

openGL资源包

两个文件夹都打包好了。只需要解压出来你自己找个路径。

2017-12-13

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

TA关注的人

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