自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 多线程学习之单消费者单生产者(ringbuffer)

//// Created by 操越 on 2020/10/27.//#include <iostream>#include <thread>#include <mutex>#include <condition_variable>#include <queue>#include <unistd.h>#define BUFFER_NUM 10#define ALL_NUM 1000using namespa

2020-11-12 15:40:38 1143

原创 OpenGL学习准备——VS环境搭建

OpenGL看起来它和OpenCL很像,其实这完全是两个不同的家伙。OpenCL实现了GPU的可编程化,支持高级语言,而OpenGL则是一个开源的图形库,多用于计算机图形学、游戏开发等待场景。由于项目中涉及到,加上以后工作可能会用到图像渲染的相关技术,图形学0基础的我,还是得好好搞搞这家伙。推荐学习网站Learn OpenGL本文先配置一波windows上的OpenGL基础开发环境。下载OpenGL主要包括两个部分库,glew和glfw。下载地址GLFWGLEW注意,GLFW根据前人经验,下载

2020-11-04 17:21:40 220

原创 一个小知识点的记录——大端小端

在学习过程中遇见的一个小知识。主机字节序又称为CPU字节序,不由操作系统决定,而是由CPU指令集架构决定。主要分为两种:1、大端字节序:高序字节存储在低位地址,低序字节存储在高位地址2、小端字节序:高序字节存储在高位地址,低序字节存储在低位地址以32位整数0x12345678为例,假设存放的起始地址从0x00开始在大端系统中,存放如下内存地址 0x00 0x01 0x02 0x03数据 12 34 56 78在小端系统中内存地址 0x00 0x01

2020-08-15 14:59:05 528

原创 C++ auto_ptr、unique_ptr和shareed_ptr智能指针实现笔记

写在前面对在C++中new出来的堆对象,在程序结束前必然需要我们手动进行delete,否则会造成内存泄漏。C++11提出的智能指针就是利用类对象在程序结束前自动调用析构函数的方式来自动管理内催空间。因此,智能指针是一个类。C++98中有auto_ptr(书院弃徒,垃圾),但由于本身的缺陷,已经被C++11弃用。C++11中,三个更为优秀的智能指针横空出世,惊才绝艳。想要绝世之才,必然要从弟弟开始做起智能指针中的弟弟,非auto_ptr不可。虽然后来的哥哥们比较牛逼,但是万变不离其宗,原型都是auto弟

2020-08-13 17:54:21 259

原创 单例模式笔记

平时做项目,学习的过程中没有怎么接触过设计模式(统统在面向过程。。。很是菜),单例模式以前都不清楚,为了应对面试中可能出现的情况,至少还是要扒一扒单例的裤子。什么是单例以及单例的构造方式单例模式,就是只允许产生一个实例化对象,即这个类只有一个对象(不允许重婚哦)。一般情况下,我们实现一个对象的实例化,会进行普通的构造或者利用new一个堆对象。想要实现单例,显然需要限制构造函数的访问权限-private。然后暴露一个接口给用户进行实例化。如下:class Student {public: ~Stu

2020-08-12 23:24:29 128

原创 C++温习面向对象——3、继承

写在前面C++面向对象的思想,之前总结到,主要包括封装、继承的基本概念1、一个类A可以继承另一个类B,那么我们称类B为基类(父类),类A为派生类(子类)。2、子类从父类继承了所有成员,除了构造函数、析构函数、赋值运算符重载函数。(还是要自己构造自己和“自杀”滴)。3、子类的成员分为两部分: 继承,扩展4、虽然父类的私有成员被子类继承,但子类不能直接访问父类的私有成员。(朋友可以用,儿子不可以哈哈哈,可以结合之前的友元类)可以通过继承自父类的公有成员函数来访问。5、子类可以自己实现与父类成员函数

2020-07-07 21:15:38 345

原创 C++异常处理

什么是异常处理异常处理:是编程语言或计算机硬件中的机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)在C++中针对异常处理提供了一种标准的方法,用于处理程序运行时的错误,保证程序的健壮性、稳定性。但是异常处理的速度没有普通函数快,过多的异常处理会影响效率。目的:对用户在程序中的非法操作进行控制和提示,以防程序崩溃。C++异常处理方式不再用if语句进行判断,有三个关键字,try,throw,catchtry-catch块try{ 包含可能抛出异常的语句}c

2020-07-05 23:00:00 187

原创 C++概念温习——2、类与对象的相关基础知识

C和C++实现输入一个点和打印一个点的区别,直接 / 封装类-抽象对象-类的实例化

2020-06-28 00:12:38 181

原创 C/C++静态回顾

引言C/C++面试常见问题,关键字static的用法,在这里稍作整理和温习。C——静态局部变量用于函数体内部修饰变量,这种变量的生存期长于该函数。这与变量所在的内存区域有很大的关系。我们知道编译器自动分配的内存区域,如局部变量、函数参数,都在栈区,会随着作用域退出而释放空间。用户分配的区域在堆空间。全局数据区(静态区),全局变量和静态变量就存在一起,初始化的全局变量和静态变量在一个区域,未初始化的全局变量和未初始化的静态变量在另一块区域,程序结束时自己释放。函数结束后,静态局部变量的内存空间不会被销

2020-06-23 21:48:31 226

原创 const关键字温习

什么是const是C/C++保留的一个关键字,用来限定一个变量是只读的,即不可变,可以在一定程度上提高程序的健壮性。使用1、定义const常量:常量意味着在初始化完成后,其值不可以被改变2、const和指针常量指针:不能通过指针修改指针指向的变量的值,自身是常量的指针,但是可以让指针指向别的变量。(常量的指针,指针变量可以改变,指针指向的东东不可变)指针常量:即指向常量的指针,指针常量的值不能被修改,即不能存一个新的地址(注意此时不可变的量是指针),不能指向别的变量,但可以通过指针修改它所指的

2020-06-22 16:35:39 113

原创 C++概念温习整理-1、面向对象引言

引言本科一进学校就是学C语言,当初就是为了应付考试,瞎学一通。这么多年了,实在惭愧,关于C/C++依旧是小白级别的水平。平时做的一些项目也都是在面向过程,C++能力实在有限。在leetcode刷题的时候,也发现了自己的薄弱。因此,决定抽空也复习复习C++,在这里做一些自己的笔记和理解。C与C++的大致区别众所周知,C是面向过程的语言,而C++作为C的升级版和扩展,是面向对象的语言,当然现在还有面向函数式的编程思想,可以说非常牛X。所谓面向对象,包括了三大概念:封装、继承、多态。相比于C,C++中还

2020-06-03 21:01:53 142

原创 《CUDA C编程权威指南》—读书笔记—3.1CUDA执行模型与硬件

软硬总归是不能分家。上一章简单介绍了CUDA的编程模型,本章学习主要关于CUDA的相关硬件架构、线程执行的本质,以及CUDA在线程级并行的一些优化方法,比如规约问题。话不多数,开始学习。GPU实际上是由多个流式多处理器构建的处理器阵列(可以这样理解,当然所有SM会由GPU管理,并非完全独立)。先上一张经典Fermi架构的GPU的SM示意图。需要注意的时,以下结构实际上只是 GPU的compute...

2020-04-18 20:59:58 332

原创 《CUDA C编程权威指南》—读书笔记—2.3线程组织

GPU高速运算的很大一个特点就是,利用足够多的线程来隐藏内存操作等各类延迟。选择合适的网格和块来组织线程结构,对内核性能会产生极大的影响。以矩阵加法为例。在全局内存中,一个矩阵往往以行优先的方式进行存储,即下一行接着上一行以线性方式在物理内存中存储。如下图,为一个8*6的矩阵。在kernel中,一个线程被分配一个矩阵元素进行运算 。对于一个二维组织的线程来说,我们需要在编程时明确知道一下内容...

2020-04-18 20:59:25 115

原创 《CUDA C编程权威指南》—读书笔记—2.2计时

上一篇学习了CUDA的整体框架,简单介绍了关于线程组织和内存的知识。2.2节内容是CUDA编程中的一个实用工具。在进行并行编程时,我们主要关注的时算法、程序的执行效率,因此对核函数执行的时间统计是非常常见的。类似C/C++中的time.h 中的clock_t、clock()等,CUDA也提供了一些计时方法。2.2.1 CPU计时器添加sys/time.h 头文件,实用gettimeofday来...

2020-04-18 20:59:08 178

原创 《CUDA C编程权威指南》—读书笔记—2.1CUDA编程模型

作为英伟达针对N卡推出的通用并行计算平台和编程模型,CUDA类似于C语言的一种扩展,为应用程序和GPU硬件之间架起了桥梁。CUDA在CPU、GPU异构计算系统上执行应用程序,将CPU及其内存称为Host,GPU及显存称为Device。一个典型的CUDA程序实现流程有以下三个部分。实际是Host程序与Device程序的交替执行。1、把数据从CPU内存拷贝到GPU内存2、调用核函数对存储在...

2020-04-18 20:50:21 285 4

空空如也

空空如也

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

TA关注的人

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