- 博客(167)
- 收藏
- 关注
原创 颜色的线性混合
vertex shaderattribute vec3 kzPosition;attribute vec2 kzTextureCoordinate0;uniform highp mat4 kzProjectionCameraWorldMatrix;varying mediump vec2 vTexCoord;void main(){ precision mediump float; vTexCoord = kzTextureCoordinate0; //纹理坐标
2021-04-08 16:12:22 363
原创 shader倒影效果
vertex shader:attribute vec3 kzPosition;attribute vec2 kzTextureCoordinate0;uniform highp mat4 kzProjectionCameraWorldMatrix;uniform mediump vec2 TextureOffset;uniform mediump vec2 TextureTiling;varying mediump vec2 vTexCoord;void main(){ pre
2021-03-31 18:47:00 424
原创 c++文件系统标准输入输出流的简单使用
#include<iostream>#include<fstream>#include<sstream>#include<string>using namespace std;void readFile(){ const char* filePath = "D:\\guiCode\\leeteCode\\sstreamTest\\sstreamTest\\file.txt"; ifstream readStream(filePath,ios.
2021-03-21 10:37:37 246
原创 设计模式书籍及参考
参考:https://blog.csdn.net/u012501459/article/details/46288651书籍下载:http://www.dofactory.com/net/design-patterns
2021-03-12 17:16:51 226
原创 VS2015 release模式下调试设置
https://blog.csdn.net/liuzhezhe111/article/details/82155306
2021-03-11 14:29:11 209
原创 C++11 使用异步编程std::async和std::future
参考:https://www.cnblogs.com/moodlxs/p/10111601.html
2021-03-09 09:31:48 173
原创 c++ 读写锁机制
读写锁是多线程同步的另外一个机制。在一些程序中存在读操作和写操作问题,对某些资源的访问会存在两种可能情况,一种情况是访问必须是排他的,就是独占的意思,这种操作称作写操作,另外一种情况是访问方式是可以共享的,就是可以有多个线程同时去访问某个资源,这种操作称为读操作。这个问题模型是从对文件的读写操作中引申出来的。把对资源的访问细分为读和写两种操作模式,这样可以大大增加并发效率。读写锁比互斥锁适用性更高,并行性也更高。需要注意的是,这里只是说并行效率比互斥高,并不是速度一定比互斥锁快,读写锁更复杂,系统开销更大
2021-03-08 14:02:19 851
原创 c++编码格式问题
利用c++11新特性 std::wstring_convert配合std::codecvt模板类,可以实现wstring与string之间的互转这两个模板类的功能是:std::wstring_convert:转码器,接收一个类似codecvt描述编码转换特性的模板参数,用于将本地化的宽字符wstring和指定编码的字节化string进行互转。std::codecvt:编码转换特性类,用在wstring_convert的模板参数中来指定使用哪种编码。例子:#include <codecvt&g
2021-03-04 10:37:48 267 1
原创 atomic_flag 自旋锁
本文介绍 头文件中最简单的原子类型: atomic_flag。atomic_flag 一种简单的原子布尔类型,只支持两种操作,test_and_set 和 clear。std::atomic_flag 构造函数如下:atomic_flag() noexcept = default;atomic_flag (const atomic_flag&T) = delete;std::atomic_flag 只有默认构造函数,拷贝构造函数已被禁用,因此不能从其他的 std::atomic_flag
2021-03-02 15:39:01 501
原创 std::lock避免死锁
多线程 std::lock当要同时操作2个对象时,就需要同时锁定这2个对象,而不是先锁定一个,然后再锁定另一个。同时锁定多个对象的方法:std::lock(对象1.锁,对象2.锁…)额外说明:lock_guard lock_a(d1.m, std::adopt_lock);上面这句是为了解开std::lock的锁。参数std::adopt_lock的作用:告诉lock_guard,d1.m已经被上锁了,你不要再去锁它了,沿用它原来的锁就好。案例:#include <list>#in
2021-03-02 13:29:24 818
原创 std::this_thread::sleep_for与std::this_thread::yield区别
std::this_thread::sleep_for和sleep这哥俩没啥太大区别都是表示当前线程休眠一段时间,休眠期间不与其他线程竞争CPU,根据函数参数,等待相应时间时间。只是一个是C的函数一个是c++的函数分别对应头文件 <unistd.h> 和 < thread >std::this_thread::yield当前线程放弃执行,操作系统调度另一线程继续执行。即当前线程将未使用完的“CPU时间片”让给其他线程使用,等其他线程使用完后再与其他线程一起竞争"CPU"。st
2021-03-02 10:25:08 470
原创 c++11新特性学习
https://changkun.de/modern-cpp/zh-cn/01-intro/index.htmlc++11新特性:1.auto 类型自动推导 auto i=10;2.enum class …, 不可当做int类型使用,使用需要指定作用域可避免命名冲突3.nullptr ,#define NULL 0,其中,在NULL使用时存在函数调用歧义,void func1(char*);void func1(int);都可以被调用4.for(auto&:vec) 结构化绑定遍历,st
2021-03-01 17:56:13 121
原创 多线程学习地址
https://www.kancloud.cn/jxm_zn/cpp_concurrency_in_action/content常用框架代码:头文件:ThreadAlloc.h#pragma once#include<iostream>#include <thread>#include <atomic>#include <vector>#include <functional>namespace EPT { inline u
2021-02-24 10:31:44 92
原创 c++中NULL二义性问题
在编程逻辑世界,有因必有果,如果一个结果含糊不定(二义性),显然是我们不想要的。C++11中引入nullptr是为了解决NULL的二义性问题。NULL二义性的体现 void func(int) {} void func(int *) {}当函数调用func(NULL)时会是怎样执行?先看C++对NULL的定义:#if defined(__cplusplus) # define NULL 0 /* C++中使用0作为NULL的值 */#else # define NULL ((void *
2021-02-20 11:48:05 561
原创 C++中weak_ptr的使用
https://blog.csdn.net/fengbingchun/article/details/52203825
2021-02-19 21:54:10 129
转载 移动构造函数与右值引用用法
参考:http://c.biancheng.net/view/7847.html在 C++ 11 标准之前(C++ 98/03 标准中),如果想用其它对象初始化一个同类的新对象,只能借助类中的复制(拷贝)构造函数。其实,拷贝构造函数的实现原理很简单,就是为新对象复制一份和其它对象一模一样的数据。需要注意的是,当类中拥有指针类型的成员变量时,拷贝构造函数中需要以深拷贝(而非浅拷贝)的方式复制该指针成员。深拷贝和浅拷贝的区别,就在于深拷贝需要对指针类型的成员变量在堆上重新分配内存空间。#include &
2021-02-07 11:32:10 367
原创 VA助手快捷键说明
安装完番茄插件之后,可以使用一些默认快捷键或自己设置一些快捷键快捷键 说明Alt+G: 快速跳转,如由声明跳转到实现,由实现跳转到声明。 光标要在标识符处Alt+O: .h与.cpp文件的快速切换Alt + ←:回到上一次光标所在的地方F12:转到所调用函数或变量的定义Alt + M:列出当前文件所有的函数Alt +Shift + A: 添加现有文件Alt+Shift+F: 查找标识符所有被引用的位置 光标要在标识符处Alt+Shift+O: 查找整个Solution下的某个文件 O指op
2021-02-03 11:06:21 783
原创 c++计算程序运行时间
C++中如何记录程序运行时间一、clock()计时函数clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:clock_t clock(void) ;简单而言,就是该程序从启动到函数调用占用CPU的时间。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock);若挂钟时间不可取,则返回-1。其中clock_t是用来保存时
2021-02-01 13:39:35 12900
原创 类与类之间的几种关系
类与类之间的几种关系 一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子...
2021-02-01 10:29:36 544 1
原创 dll调试方法
建立一个dll工程和一个test工程1.例如,#include//导出函数或者类#define HELLO_API _declspec(dllexport)HELLO_API void print(){std::cout<<“hello”<<std::endl;}//导出hello.dlltest工程:typedef int(*fnFun)(); // 定义函数指针类型int main(){// 1. 显式链接//1.1 加载DLL// hDll :
2020-07-28 10:29:12 346
原创 git删除远程仓库文件夹
在github上只能删除仓库,却无法删除文件夹或文件, 所以只能通过命令来解决首先进入项目master文件夹下, Git Bash Here ,打开命令窗口$ git pull origin master # 将远程仓库里面的项目拉下来$ dir # 查看有哪些文件夹$ git rm -r --cached target # 删除target文
2020-07-24 09:50:15 262
原创 glfw库键盘,鼠标点击和滚轮事件处理
https://blog.csdn.net/ynsenyu/article/details/39423493
2020-04-29 10:47:17 7147 4
转载 PyTorch-网络的创建,预训练模型的加载
PyTorch-网络的创建,预训练模型的加载 本文是PyTorch使用过程中的的一些总结,有以下内容:构建网络模型的方法网络层的遍历各层参数的遍历模型的保存与加载从预训练模型为网络参数赋值主要涉及到以下函数的使用add_module,ModulesList,Sequential 模型创建modules(),named_modules(),children(),na...
2020-04-01 11:49:21 205
转载 C++ replace用法
replace算法:replace函数包含于头文件#include中。 泛型算法replace把队列中与给定值相等的所有值替换为另一个值,整个队列都被扫描,即此算法的各个版本都在线性时间内执行———其复杂度为O(n)。即replace的执行要遍历由区间[frist,last)限定的整个队列,以把old_value替换成new_value。下面说下replace()的...
2020-03-30 10:31:09 3255
转载 WglCreateContext函数作用
WglCreateContextWglCreateContext函数创建一个新的OpenGL渲染描述表,此描述表必须适用于绘制到由hdc返回的设备.这个渲染描述表将有和设备上下文(dc)一样的像素格式.HGLRC wglCreateContext(HDC hdc // device context of device that the rendering context ...
2020-03-26 10:42:41 669
原创 python读写xml文件
使用方法见:https://www.cnblogs.com/Zhouzg-2018/p/9926048.htmlfrom xml.dom.minidom import Documentimport xml.etree.ElementTree as ET## def writeXml(imgPath='',save_path="/home/gui/newXml.xml"):#...
2020-01-01 16:36:10 224
原创 车牌识别资料整理
原文地址:https://www.zhihu.com/question/355669768/answer/893855833如果是做国内的车牌识别,github上有一个CCPD。这是中科大开源的一个数据集,标注比较详细不过不是按字符分割的方式做的标注(这个数据集的目标是做端到端训练,因为识别模型我考虑的就是做端到端的,所以这不是问题),优点是数据集规模很大,缺点是只有蓝牌并且主要是当地的牌照(皖...
2019-12-31 15:12:30 397
转载 python生成xml
from: http://blog.csdn.net/fhl812432059/article/details/51647529dom写xml 1.引入包import xml.dom.minidom2.writexml方法writexm...
2019-12-30 20:45:29 814
转载 YOLOV3(yolov3)训练自己的数据
前言:做目标检测,选择的算法是yolo v3,因为它既有速度又有精度,还非常灵活,简直是工业界良心。做项目免不了需要用到自己的数据集,所以得从头一个脚印的来,走通了之后决定写一个帖子,让需要用的人少走歪路,节约时间。官网上已经教我们如何跑起来yolo v3,因此大部...
2019-12-15 11:26:35 526
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人