自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cong的专栏

站得更高,看得更远

  • 博客(84)
  • 资源 (6)
  • 收藏
  • 关注

原创 QTableView表格添加菜单

#include <QTableView>#include <QStandardItemModel>#include <QMenu>#include <QHeaderView>QTableView* m_tableView = new QTableView(this);QStandardItemModel* m_itemModel = new QStandardItemModel(this); //添加表头 m_itemModel->s

2020-10-13 14:51:17 922

原创 QOpenglWidget使用示例

opengl相关库文件opengl32.libglu32.libGlaux.libglew32.lib#ifndef CMYOPENGLWIDGET_H#define CMYOPENGLWIDGET_H//#include "TextureManager.h"#include <QOpenGLWidget>class CMyOpenGLWidget : public QOpenGLWidget{ Q_OBJECTpublic: CMyOpenGLWidget(Q

2020-09-30 15:41:17 2214

原创 Qt http网络请求

#include <QNetworkAccessManager>#include <QNetworkRequest>#include <QNetworkReply>#include <QSslSocket>#include <QSslConfiguration>#include <QTime>#include <QApplication>#include <QDebug>方式一 QUrl u

2020-09-24 14:17:15 418

原创 opencv将图片生成视频

CV_FOURCC获取编码格式:CV_FOURCC('P', 'I', 'M', '1') = MPEG-1 codecCV_FOURCC('M', 'J', 'P', 'G') = motion-jpeg codecCV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec CV

2020-09-24 13:56:43 1078

原创 基于window多线程实现web服务端

实现源代码#ifndef _HTTP_SERVER_H#define _HTTP_SERVER_H#include <WinSock2.h>#include <process.h>#include "stdlib.h"#include "stdio.h"#include "string.h"#pragma comment(lib,"ws2_32.lib")#define BUF_SIZE 2048#define BUF_SMALL 100#def..

2020-09-23 14:55:21 164

原创 Qt程序退出QThread: Destroyed while thread is still running问题

Qt程序退出QThread: Destroyed while thread is still running问题解决方法:在主线程中使用new Qthread在堆上创建,即可解决。

2020-09-11 14:15:37 2569

原创 旋转矩阵

二维旋转矩阵(顺时针)(x1,y1) = (x,y)[cos(tha) sin(tha)][-sin(tha) cos(tha)]三维旋转矩阵(顺时针)

2020-08-20 17:23:53 117

原创 链表翻转实现

链表节点数据结构定义struct LinkListNode{ void* data; struct LinkListNode* next;};递归方法//递归实现链表翻转struct LinkNode* reverse(struct LinkNode* lNode){ if(lNode->next == NULL) { return lNode; } struct LinkNode* nodeTemp = reverse(lNode-

2020-08-07 11:57:31 96

原创 C++标准库中string简单实现

头文件#ifndef STRING_H#define STRING_H#include <iostream>using namespace std;class String{public: String(const char * str = NULL); String(const String &str); ~String(); String operator+(const String& str) const; Stri

2020-08-06 14:03:36 227

原创 C++智能指针简单实现

#ifndef SHARE_PTR_H#define SHARE_PTR_Htemplate<typename T>class CSharePtr{public: CSharePtr( T* ptr) { if(ptr) { m_pPtr = ptr; m_nRef = 1; }else { m_nRef = 0;

2020-08-06 13:55:21 122

转载 内存分配

转载自:https://zhuanlan.zhihu.com/p/296323681.内存分配方式  内存分配方式有三种:  [1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。  [2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。  [3]从堆上分配,亦称动态内存分配。程序在运行的时候用m

2020-08-04 11:45:00 288

原创 常用字符串函数实现

1、memcpy函数void* memcpy(void *dest,const void *src,int n){ if(NULL == dest||NULL ==src) { return NULL ; } char * tdest = (char*)dest;//save the start adress char * tsrc = (char*)src; if(tsrc< tdest && tsrc + n

2020-07-21 16:31:40 218

原创 网络编程之——多路IO转接(epoll模型)

epoll内部使用红黑树数据结构,epoll_create函数创建一个根节点并返回,epoll_ctl函数进行添加删除修改子节点。epoll操作过程需要三个接口,分别如下:#include <sys/epoll.h>int epoll_create(int size);int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);int epoll_wait(int epfd, struct epoll_event

2020-07-20 16:25:58 163

原创 网络编程之——多路IO转接(poll模型)

poll函数原型struct pollfd { int fd; /* file descriptor */ short events; /* requested events */ short revents; /* returned events */};//fds 监听数组//nfds 监听数组的实际个数//timeout -1 无限超时// 0 立即返回// >0 超时返回 //返回值 >0结构体中reve

2020-07-14 15:06:25 123

原创 网络编程之——多路IO转接(select模型改进)

select模型中在处理监听事件时需要对文件描述符依次遍历,此处可以稍作改进,避免不必要的遍历。改进思路定义一个FD_SETSIZE大小的数组,用于存储有效连接定义一个下标变量用于记录存储连接数组中的有效连接最大下标,供遍历作为上限值使用int maxC = -1;int client[FD_SETSIZE];//存储连接的文件描述符for(int k=0;k<FD_SETSIZE;++k)//初始化{ client[k] = -1;}连接时处理if(FD_ISSET(lfd,

2020-07-14 10:39:07 140

原创 网络编程之——多路IO转接(select模型)

select模型优点 实现多路复用 避免了频繁创建多进程/多线程处理连接产生的开销,提高了连接处理效率缺点 最多监听1024个文件描述符 事件处理时需要依次遍历,带来不必要的开销select函数原型//nfds 最大描述符加1//readfds 输入输出参数 返回读事件文件描述符集合//writefds输入输出参数 返回写事件文件描述符集合//exceptfds输入输出参数 返回异常事件文件描述符集合//timeout 0 非阻塞 立即返回 NUL

2020-07-14 10:13:32 170

原创 网络编程之——多进程并发服务器

思路:主进程循环等待连接,连接成功后创建一个子进程,在子进程中处理该连接的数据通信,然后在主进程中注册SIGCHLD中断信号回收子进程资源防止僵尸进程产生,主进程继续执行等待连接。示例:#include "wrap.h"#include <stdlib.h>//#include <stdio.h>#include <netinet/in.h>#include <netinet/ip.h>#include <arpa/inet.h>//

2020-07-09 16:12:42 306

原创 网络编程之——多线程并发服务器

思路:循环等待连接,连接成功后创建一个子线程处理该连接的数据通信,然后继续等待连接。socket接口封装:#include "wrap.h"#include <sys/types.h>#include <errno.h>#include <unistd.h>void sys_err(const char *ch){ perror(ch); exit(1);}int Socket(int domain, int type, int pr

2020-07-09 16:04:57 262

原创 网络编程之——简单socket客户端程序

客户端代码执行步骤:1、创建socket;2、连接服务器 connect() (参数传递服务端IP地址和端口);3、数据通信4、关闭连接 close().示例:#include <sys/socket.h>#include <netinet/in.h>#include <netinet/ip.h>#include <arpa/inet.h>#include <unistd.h>#include <ctype.h>

2020-07-09 15:54:12 896

原创 网络编程之——简单socket服务端程序

服务器端代码执行步骤:1、创建socket;2、绑定服务器地址和端口 bind();3、设置监听参数 listen();4、等待链接 accept();5、关闭链接close().示例:#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netinet/ip.h>#include <stdio.h>#include &lt

2020-07-09 15:47:41 272

原创 基本排序算法实现汇总

最近有空复习了一下排序算,这里将各种基本排序算法实现总结了一遍,并整理到了一个类中,方便以后查询。头文件#ifndef _SORT_UTILS_H_#define _SORT_UTILS_H_#include <vector>using namespace std;template<class T>class CSortUtils{public: CSortUtils(); virtual ~CSortUtils(); typedef struct node

2020-07-07 11:12:03 118

原创 Linux下vscode使用Makefile

task.json{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "build-debug", "type": "shell",

2020-07-07 10:57:09 1796

原创 常见数据结构C实现之——二叉树

二叉树节点定义struct BinaryNode{ char t; struct BinaryNode* lChild; struct BinaryNode* rChild;};先序遍历//二叉树递归遍历void Recursion(BinaryNode* root){ if (root == NULL) { return; } printf("%c",root->t);//根结点 Recursio

2020-07-07 10:44:58 153

原创 常见数据结构C实现之——链式队列

数据结构定义struct LinkNode{ struct LinkNode* next;};struct LQueue{ struct LinkNode head; int nSize; struct LinkNode* tail;};typedef void* LinkQueue;头文件定义#ifndef LINK_QUEUE_H#define LINK_QUEUE_H//初始化LinkQueue initial_LinkQueue();

2020-07-06 17:20:24 104

原创 常见数据结构C实现之——基于链表的栈

定义外部使用的数据类型名typedef void* LinkStack;头文件定义#ifndef LINK_STACK_H#define LINK_STACK_H#include "stdlib.h"typedef void* LinkStack;//初始化栈LinkStack initial_LinkStack();//进桟void push_LinkStack(LinkStack lStack,void* data);//返回栈顶元素void* top_LinkStack(

2020-07-06 17:07:50 116

原创 常见数据结构C实现之——单链表

数据节点定义struct LinkNode{ struct LinkNode* next;};链表结构定义struct LList{ struct LinkNode head; int nSize;};类型重命名typedef void* LinkList;头文件定义#ifndef _LINKLIST_H#define _LINKLIST_H//#include <stdio.h>//#include "stdlib.h"typedef

2020-07-06 16:58:14 120

原创 Linux下使用vscode

1、下载安装vscodevscode下载地址2、安装插件3、添加源文件4、添加配置修改launch.jason脚本{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ {

2020-06-24 15:10:26 7018

原创 常见数据结构C实现之——动态数组

#include<stdlib.h>#include<string.h>struct DynamicArray{ void** arr; int m_nCapacity; int m_nSize;};//initial arraystruct DynamicArray* init_DynamicArray(int nCapacity){ struct DynamicArray* pMyArr = (struct DynamicArra

2020-06-24 14:44:16 416

原创 Linux下使用coredump

1、查看当前coredump文件大小设置状态使用ulimit -c 或 ulimit -a 命令若值为0,表示coredump文件大小为0,默认不使用coredump。2、设置coredump文件大小“ulimit -c [size]” 例,ulimit -c 80;“ulimit -c unlimted” 不限制文件大小永久生效办法:#vi /etc/profile 然后,在profile中添加:ulimit -c 1073741824(但是,若将产生的转储文件大小

2020-06-23 17:14:59 3451

原创 C++线程池简单实现(windows)

思路:创建线程池时启动固定个数线程,线程函数中循环监听任务队列,取出任务并执行,在此处我将指针函数作为任务传递入口,存在弊端就是任务处理函数签名固定了,灵活性低。当然,也可以将任务进行封装,使用C++的多态特性来完成不同类型的任务。关键要点:1、使用queue作为消息队列的载体queue 的基本操作有:入队,如例:q.push(x); 将x 接到队列的末端。出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。访问队首元素,如例:q.front(),即最早被压入队列

2020-06-17 10:42:49 2264 2

原创 Unity判断鼠标是否选中UGUI

在Unity中,当GUI与模型处于同一界面时,在操作界面的时候往往会屏蔽掉鼠标对模型的控制操作,这时我们可以使用unity的Raycast功能进行判断是否选中了GUI控件:bool CheckGuiRaycastObjects() { PointerEventData eventData = new PointerEventData(GameObject.Find(...

2018-06-27 15:26:51 1788 2

转载 游戏服务器通用架构

游戏服务器通用架构 http://gad.qq.com/article/detail/11616

2018-06-17 17:46:47 1591

原创 网络编程——服务器端学习资料

浅谈几种服务器端模型——同步阻塞迭代 http://www.cnblogs.com/Bozh/archive/2012/04/21/2460998.html 浅谈几种服务器端模型——多进程并发式 http://www.cnblogs.com/Bozh/archive/2012/04/21/2461074.html 浅谈几种服务器端模型——多线程并发式(线程池) http://www.cn...

2018-06-11 14:09:13 193

原创 数据库存储过程语法总结

存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。一般分为十种情况,每种语法各不相同:1、 创建语法create proc | procedure pro_name [{@参数数据类型} [=默认值] [output], {@参数数据类型} [=默认值] [output], .... ]as SQL_statements2、 创建不...

2018-05-30 16:07:04 900

原创 Halcon+C++摄像头采集图像

bool CWatermeterCheckDlg::OpenCam(const HWindow&amp;amp;amp; window,HObject&amp;amp;amp; ho_Image){ try { OpenFramegrabber(&amp;quot;GigEVision&amp;quot;, 0, 0,0,0, 0, 0, &amp;quot;default&amp;quot;, -1, &amp;qu

2018-05-21 15:53:11 2944

原创 Unity中解析加载Obj文件(C#)

Obj文件格式:mtllib master.mtl v -0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000 v -0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000 v -0.500000 0.500000 -0.500000 v 0.50000...

2018-05-17 13:53:14 7749 2

原创 时间复杂度介绍

时间复杂度的表示方法   设解决一个问题的规模为n,基本操作被重复执行次数是n的一个函数f(n),则时间复杂度可记作: T(n)=O(f(n)) 它表示随着问题规模n的增长,算法执行时的增长率和f(n)的增长率相同。其中T(n)叫算法的渐进时间复杂度,简称时间复杂度。算法的时间复杂度考虑的只是对于问题规模n的增长率,则在难以精确计算的情况下,只需考虑它关于n的增长率或阶即可。    时间复杂...

2018-04-25 09:42:29 318

原创 C/C++读取文件总结

逐行读取文本ifstream file;file.open(strPath, ios::in);if (!file.is_open()) return; string strLine;while (getline(file, strLine)){ if (strLine.empty()) continue; //do something...

2018-04-09 14:13:15 392

原创 C++用指定的字符串替换子串

用指定的字符串替换源字符串中的子字符串。void string_replace(string &amp; strBig, const string &amp; strsrc, const string &amp;strdst){ string::size_type pos = 0; string::size_type srclen = strsrc.size(); ...

2018-04-08 15:26:11 2642

转载 C++拆分字符串

方法1: 使用strtok函数 char * __cdecl strtok(char * _Str, char * _Delim) 首次调用时,_str指向要分解的字符串,之后再次调用要把_str设成NULL。strtok是非线程安全函数。vector&lt;std::string&gt; split(const string &amp;str, const string &amp;...

2018-04-08 15:12:00 2772

排序算法集合类

经典算法集合类文件,可以用于学习,复习,研究,练习等等

2017-11-10

sqlite数据库读写库项目工程代码

C++读写sqlite数据库,接口封装项目工程代码,可以根据需要自行扩展

2017-07-19

sqlite3库文件

包含sqlite的头文件、lib文件、dll文件

2017-07-17

贝塞尔曲线算法工程源码

贝塞尔曲线算法工程源代码

2017-06-15

设计模式手册

一个chm文档,收集了设计模式的解释和示例代码,方便查阅

2017-05-11

基于cryptlib5.6.1AES_CFB_加解密示例代码

基于cryptlib5.6.1AES_CFB_加解密应用

2016-03-09

空空如也

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

TA关注的人

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