![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
DBBH
成都有合适webgl/webgpu岗位的请私信我
展开
-
webassembly学习
https://www.cntofu.com/book/150/index.html这个好 看了感觉就可以用了转载 2019-12-31 15:43:24 · 232 阅读 · 0 评论 -
int 8 16 32 64这些是啥
原文https://www.cnblogs.com/daguonice/archive/2019/07/16/11193884.html Int8, 等于Byte, 占1个字节. Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节. -2147483648 2147483647 Int64, ...转载 2019-12-30 10:44:27 · 579 阅读 · 0 评论 -
内存对齐
三条:1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储。2:结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最...转载 2019-12-30 10:24:27 · 96 阅读 · 0 评论 -
QT 使用stackwidget
这个控件可以翻页 每一页你在上面摆东西就好了。有一个重要的接口setCurrentIndex(int);你可以选择放一个Button或者很多Button在外面,点BUTTON的时候你设置setCurrentIndex(随便几),这样就实现了按钮翻页效果或者你弄一个listwidget addItem()然后 currentRowChange(int)这里。关联stackwidget信号槽就原创 2017-09-01 13:49:04 · 2844 阅读 · 0 评论 -
学习windows内核一
操作系统通过驱动对象来分发命令。主函数需要驱动对象和注册表路径主函数需要注册一个类似C++析构函数的东西。还是自己实现,删除设备对象和符号链接还有一些自己创建的东西。通过设备对象才能通信,所以需要创建一个设备对象。如果创建成功了就能在驱动对象中拿到他了。然后需要先判断是否创建成功。失败了就返回状态。返回值可以用一个NTSTATUS的变量存放。若成功了,就可以创建符号链接重点:实原创 2017-09-09 23:18:08 · 2827 阅读 · 0 评论 -
函数指针调用类的成员函数
class A{public:void func(){printf("ff\n");};typedef void(A::*B)();//这个函数指针在类里面和外面都要这样map mp;void g(){mp["11"] = &A::func;}void call(){(this->*mp["11"])();}};typedef原创 2017-09-16 10:04:55 · 571 阅读 · 0 评论 -
简单使用DLL里的函数
你首先要知道DLL里面函数的类型 以及参数的类型typedef type (* Func)(int,int)类似这样hInstance hDll=LoadLibrary("path");Func f=(Func)GetProcess(hDll,"functionname");f()就可以使用了。用完了记得FreeLibrary(hDll);假如有个函数int ad原创 2017-09-05 10:26:50 · 434 阅读 · 0 评论 -
QT子窗口收到父窗口发来的信号
上次弄了父窗口收到子窗口发来的信号,这次遇到了要将父窗口信号发给子窗口了:-D这个也不难父类public signals:emit send(const QString&);再随便找个地方把他发出去然后在子类public slots:void getMsg(const QString&);这个用来接收数据再连接就好了connect(parent,SIG原创 2017-08-25 15:24:41 · 4183 阅读 · 2 评论 -
QT treeview实现类似tableview的效果
treeview->setmodel(mod)//绑定model然后就在model做手脚model->setHorizontalheaderLabels( QStringlist()这样每个点都有两个属性了。QStandardItem *it =new .... ; mod->appendrow(it)mod->setitem( mod->indexfromitem(it原创 2017-08-20 10:25:12 · 1751 阅读 · 0 评论 -
QT。子窗口不析构
今天在子窗口析构函数写了个socket->close。死活不执行。确定了是关闭子窗口不执行析构。。就查资料。this->setAttribute(Qt::WA_DeleteOnClose);。构造函数加个这个东西。就可以了原创 2017-08-01 13:13:06 · 1070 阅读 · 0 评论 -
简单使用QT来调用摄像头
头文件要有 QCamera QCameraViewfinder QCamera需要这句话QByteArray device=QCamera::availableDevices()[0];camera new的时候绑定devicecamera->setModel(QCamera::capturevideo);然后需要个控件放viewfindercamera绑原创 2017-05-29 10:37:29 · 1326 阅读 · 0 评论 -
Qt 使用treeview
先拖一个treeview控件,然后在代码中 需要头文件QStandardModel QStandardItem QStandardModel *m=new QStandardModel(row,colum,this);一行四个信息QList itms;for(int i=0;i { QStandardItem* it=new QStan原创 2017-05-24 22:50:16 · 3596 阅读 · 0 评论 -
C++建立查找删除节点二叉排序树
简历方法。二叉树简历。只是小的在根的左边 大的在右边。。删除 是只写了左右子树都不为空的删除 删掉当前节点。用一个数据来填补空缺。代码里面看H#ifndef H_H#define H_H#include struct Node{ int num; Node*lNext; Node*rNext;};class BinaryTree{public: B原创 2017-01-30 23:01:32 · 330 阅读 · 0 评论 -
归并排序
先一直拆分。拆成很小的段 再拼回来 拼的时候顺便把序排了#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 · 199 阅读 · 0 评论 -
通过字符串实例化对象
听说是入门级别的反射。因为一开始不知道要创建哪个类的对象,直到确定名字才创建,所以我到处找资料看,GET的新技能加入一个类,把他注册进去。呃 别人这么讲的,感觉就是字符串和类一一对应起来。由map来存储一个函数,这个函数创建对象。typedef void* (*VOIDFUNC)();Factory类 管理mapRegclass类 只有一个构造函数,负责注册类T*的函数 返回n原创 2017-09-19 11:58:29 · 1267 阅读 · 0 评论 -
OPENGL透视投影
如果侵权了。我立马删第十二课 透视投影背景在这一节中我们将会介绍如何在保持深度外观的情况下将三维世界中的物体投影到二维平面上去。最有代表性的例子是:当我们站在一条笔直的马路的中间向前看时,我们会发现马路的两边会越来越靠近,并最终汇聚成一个点。这就是图形学中常说的透视投影。为了实现上面的效果,在本节中我们需要生成一个投影矩阵,这个投影矩阵需要满足能够将所有的顶点都投影转载 2017-12-20 10:11:20 · 1730 阅读 · 0 评论 -
QT comboBox简单使用
拖一个控件 双击 然后就点加号生成下拉菜单connect(ui->comboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(deal(int)));这样就可以接收你选择的菜单信号了你可以把初始状态设置为null,这样必须change才能触发函数,这个随意。还有ui->comboBox.currentIndexui->comboBox.c原创 2018-01-11 10:41:15 · 12280 阅读 · 0 评论 -
C++类型转换访问私有变量
#include<iostream>using namespace std;class A{public: A(int a1, int a2);private: int a; int b;};A::A(int a1, int a2) :a(a1), b(a2){}class B{public: int a = 1; int b = 3;};in...原创 2019-09-17 15:44:22 · 130 阅读 · 0 评论 -
C# 学习使用IntPtr
IntPtr _ptr = Marshal.AllocHGlobal(xxxx);申请空间 Marshal.Copy(Data, Offset, _ptr, xxxx);data的offset开始取xxxx长度给_ptr Marshal.FreeHGlobal(_ptr);释放使用泛型方便数据转换copy之后配合(Type)Marshal....原创 2019-09-06 08:57:57 · 1580 阅读 · 0 评论 -
QT OpenGL 天空盒
正常加载shader program 就是图片不一样了 立方体贴图 可以看看learnopenglQT里面封装了QOpenGLTexture这个类设置target就可以加载立方体贴图initTextures(){ const QImage posx = QImage(":/left.jpg").mirrored().convertToFormat(QImage::Format_RGB...原创 2018-05-27 15:37:39 · 876 阅读 · 2 评论 -
QT 天空盒倒过来的问题
QMatrix &QMatrix::rotate(qreal degrees)Rotates the coordinate system the given degrees counterclockwise.Note that if you apply a QMatrix to a point defined in widget coordinates, the direction of ...原创 2018-06-02 21:40:26 · 383 阅读 · 0 评论 -
QT OpenGL shader基础光照
用cube那个工程 自己去把顶点补充一个QVector3D的顶点法向量 然后把需要传入的uniform补上摄像机位置 灯颜色 灯位置 model矩阵 MVP矩阵VERT#ifdef GL_ES// Set default precision to mediumprecision mediump int;precision mediump float;#endifuniform mat4 mvp_m...原创 2018-05-08 19:56:30 · 1178 阅读 · 0 评论 -
QT FBO
QOenGLFrameBufferObject这个要在initializeOpenGLFunctions()这之后才行framebuffer=new QOpenGLFramebufferObject(w,h, QOpenGLFramebufferObject::Depth);这个framebuffer->bind();release();void MainWidget::paintGL(){...原创 2018-05-21 14:06:45 · 1024 阅读 · 0 评论 -
C++读文件夹下面的文件名字
参考各个司机的博客写的。#include #include #include #ifdef linux#include #include #endif#ifdef WIN32#include#include #include #endifvector getFiles(string mulu){ vector files;原创 2018-01-10 15:16:16 · 233 阅读 · 0 评论 -
QT调用大漠
在Qt的安装目录下有dumpcpp.exe工具,可以将dll文件导出成Qt可以使用的.h和.C文件。执行下面的命令(dumpcpp.exe +空格+dll路径):dumpcpp.exe F:\CodeOsChina\VS2017\LOLkapai\x64\Debug\dm.dll就会在目录下面生成DLL的导出.h .cpp文件。就会在当前文件夹下转载 2018-01-17 15:00:13 · 3872 阅读 · 0 评论 -
QT5.51使用QSerialPort
就和TCP差不多。初始化一下。连一个槽函数读数据init(){_serialPort = new QSerialPort(this);//QSerialPort* _serialPort; _serialPort->setBaudRate(19200);//波特率数据位COM口等等设置好 _serialPort->setDataBits(QSerialPort::Dat原创 2018-01-08 15:58:09 · 556 阅读 · 0 评论 -
OpenGL Shader类
过程就是读代码 加载代码 编译代码 检查错误 关联 然后创建Program Link 检查 Shader::Shader(const char*v,const char*f)//这里是shader文件的名字路径{ //1处理顶点着色器 2处理片段着色器std::string s1, s2;std::ifstream f1, f2;f1.exceptions原创 2018-01-05 10:42:27 · 507 阅读 · 0 评论 -
opengl摄像机类
这大概就是一个摄像机的打开方式了enum Camera_Movement {//这个标识行动方向FORWARD,BACKWARD,LEFT,RIGHT};const float YAW = -90.0f;//初始值 偏航的参数 速度 鼠标灵敏度 控制缩放const float PITCH = 0.0f;const float SPEED = 2.原创 2017-12-28 16:47:22 · 415 阅读 · 0 评论 -
图 简单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 · 1021 阅读 · 0 评论 -
图 简单滴C++邻接表 无向图
这个邻接表。。就是一个结构体数组。存放着 顶点信息和下一个点的信息。下一个点存着下一个点的信息。有点像简单的哈希表那样子struct PHead head[i] {char VInfo 这个是每个节点的信息 栗子:A B C三个节点 VInfo 分别是A B C 就存储了头结点信息。我是char的嘛。。node 这个就是每个数组保存的链表的第一个节点}struct Nod原创 2017-02-15 23:09:59 · 696 阅读 · 0 评论 -
快速排序
。把整体分块。排序。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 · 193 阅读 · 0 评论 -
学习C++哈弗曼树
每次找出最小的俩顶点 构建一棵小树 再跟原来的树拼起来。就成了新的树。。直到只剩1个顶点 构建成功#ifndef H_HPP#define H_HPP#include // 栗子 1 2 4 6 每两个顶点 都把权值相加合成一个新顶点 直到剩下一个点 就构建完成这个哈夫曼树了。 // // 13// 6 7//原创 2017-02-17 23:49:55 · 301 阅读 · 0 评论 -
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 · 213 阅读 · 0 评论 -
C++文件读写
想了想。。计算机里面的文件。。再怎么变也还是机器码。。0101嘛。。二进制读写文件。。稳试了试。。png mp4格式都可以。void playPNG(){ ifstream in("1.png", ios_base::binary | ios_base::in); if (in.is_open()) { in.seekg(0, ios::end); int pSize = i原创 2017-01-18 21:49:29 · 192 阅读 · 0 评论 -
学习C++拓扑排序
大概意思就是必须过了A才能到B这种关系。每到一个点 必须有前提条件酱紫思路是找到入度为0的点。加入一个栈或者队列这些容器 然后 挨个找与之相连系的点 。然后由于这个顶点已经被用了 那么被指向这些点的入度就可以-1 然后当有一个度变成0了,就把他加入容器里,接着循环找入度为0的顶点。有点像BFS。这每一个入度为0的顶点。就是拓扑排序出来的顺序了。完整马原创 2017-02-17 12:55:49 · 250 阅读 · 0 评论 -
win7下。C++实现多人聊天室上
.这个是服务端。#define _WINSOCK_DEPRECATED_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS#ifndef _H_H_#define _H_H_#include #include #include #include #include #pragma comment(lib,"ws2_32.lib")using原创 2017-01-13 11:46:51 · 1849 阅读 · 0 评论 -
学习虚函数表
基类指针指向派生类class A{public:virtual void f() {cout }void g(){cout}};class B:public A{public:virtual void f() {cout }void g(){cout}};vb B::f A::gB::g原创 2017-01-12 21:19:30 · 366 阅读 · 0 评论 -
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 · 1942 阅读 · 0 评论 -
简单模板链表。增查删改
一个结构体放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 · 242 阅读 · 0 评论 -
WIN下C++多人聊天下
这个是客户端。想法是。连接了服务端以后。一个线程接收打印。一个线程处理发送数据。一个原子变量检测退出#include #include #include #include #include #pragma comment (lib,"ws2_32.lib")using namespace std;SOCKET s;atomica(0);void getMessege()原创 2017-01-14 21:46:27 · 407 阅读 · 0 评论