- 博客(23)
- 收藏
- 关注
原创 《两个礼拜入门opengl -Day5》 着色器
着色器 着色器(Shader)是运行在GPU上的小程序 这些小程序为图形渲染管线的某个特定部分而运行。 从基本意义上来说,着色器只是一种把输入转化为输出的程序。 着色器也是一种非常独立的程序,因为它们之间不能相互通信; 它们之间唯一的沟通只有通过输入和输出。 着色器语言 着色器是使用一种叫GLSL的类C语言写成的。 ...
2021-10-31 12:08:54
255
原创 《两个礼拜入门opengl -Day2》如何绘制一个三角形
先记住几个名词 顶点数组对象:Vertex Array Object,VAO 顶点缓冲对象:Vertex Buffer Object,VBO 索引缓冲对象:Element Buffer Object,EBO或Index Buffer Object,IBO 一些概念上的点 OpenGL里面
2021-10-28 02:04:20
271
原创 《两个礼拜入门opengl -Day1》opengl初步了解
综下所述: 学习理念 OpenGL作为实现工具,支撑核心是计算机图形学。 对计算机图形学的理解,决定OpenGL能玩到什么程度。 至于OpenGL本身,一般是GPU厂商提供,理解接口设计的哲学与如何使用即可。 所以今后学习方式应为: 基本OpenGL的认识,基本操作,内容构成。 令人头秃的计算机图形学知识。 学习计划 整理一遍对OpenGL的大致了解(2021/10/21-已完成) 梳理OpenGL本身的结构(2021/10/22) github上的入门教程(10/25~11/06) 实现一个小东西(
2021-10-21 00:22:27
577
原创 《数据结构》排序与选择算法篇 简易笔记
排序与算法 简单排序算法(O(n^2)) 冒泡排序 算法原理: step1: 比较[0] [1]的 大小,交换位置,此时[0][1]排序完毕 step2: 比较[0] [1] [2] 的大小,交换位置, 此时 [0][1][2]排序完毕 … C实现: /* 参数 a[]:待排序数组, l:left,排序起始 r:right 排序末尾 */ void sort(Item a[], int l, int r) { for(int i = l + 1; i <= r; i++) for(int
2021-10-02 22:05:10
190
原创 Shell编程笔记(此项学习暂时中断,后续视需求补充更新)
shell手册 man cmd man命令用来访问存储在linux系统上的手册页面。 该手册可以查询命令的描述、参数用法等。 比如: man ls ls -a ls -A ls --author 可知等用法 基本shell命令 文件系统 命令 功能 部分参数作用 pwd shell会话的绝对文件路径/usr/bin ls 列表命令。列出目录、文件(默认当前路径,也可指定路径) touch 创建文件 touch file cp 复制文件 -i 询问是否覆盖已有文件 l
2021-09-29 23:49:10
184
原创 《图解算法》简易笔记
数组、链表 特性 数组 链表 内存 连续 非连续 访问 可随机访问(通过下标索引) 只能遍历访问 增删改查 内容固定,移动麻烦 内存可申请,节点变换容易 队列、栈 队列 先进先出 栈 先进后出 选择排序 原理:新建同等size缓存,一个个将数据按大小一个放入新缓存当中 源数据: src:【7】【12】【6】【9】【8】 des:【】【】【】【】【】 Step1: src:【7】【】【6】【9】【8】 des:【12】【】【】【】【】 Step2: src:【7】【】【6】【】
2021-09-29 23:38:26
160
原创 Linux多线程编程API笔记,梳理查阅
简述多线程 线程是允许应用程序并发执行多个任务的一种机制。 Pthread数据类型 数据类型 描述 phtread_t 线程ID pthread_mutex_t 互斥对象 pthread_mutexattr_t 互斥属性对象 pthread_cond_t 条件变量 pthread_condattr_t 条件变量的属性对象 pthread_key_t 线程特有数据的键 pthread_once_t 一次性初始化控制上下文 pthread_attr_t 线程的属
2021-09-28 23:03:10
166
原创 Git CMD/QA
CMD 本地建仓 本地仓提交远程 本地新建分支 切换分支 基于当前代码新建分支 提交本地分支至远程 克隆远程仓库至本地 git强制提交本地分支覆盖远程 git push origin 分支名 --force git status -s(查看文件文件状态) conflict merge QA: ...
2021-09-16 18:37:48
187
原创 C++ vector简单使用
模板类vector 详细介绍 在计算中,vector(矢量)对应数组。 在数学中,可以使用N个分量来表示N维数学矢量,因此就从这方面讲,数学矢量类似一个N维数组。然而数学矢量还有一些计算机矢量不具备的其他特征,如内乘积和外乘积。 计算矢量存储了一组可随机访问的值。 头文件 #include <vector> 操作 创建 vector<type> 在这里插入代码片 ...
2021-09-14 21:25:49
382
原创 C++ string
构造函数 NBTS:null-byte-temnated string的缩写,表示以空字符结束的字符串------传统的C字符串 构造函数 描述 string(const char* s) 将string对象初始化为s指向的NBTS string(size_type n, char c) 创建一个包含n个元素的string对象,其中每个元素都被初始化为字符串c string(const string &str) 将一个string对象初始化为string对象str(复制构造函
2021-09-13 18:42:21
412
原创 C++ cout格式化输出、cin、简单文件I/O
《C++ primer plus》摘抄总结,方便查阅回忆 cin cin >> (抽取方式,只提取一般输入)检查输入的方法介绍: 不同版本的抽取运算符查看输入流的方法是相同的。 它们跳过空白(空格、换行符和制表符),直到遇到非空白字符。 在单字符模式下,>>运算符将读取该字符,将它放置到指定的位置。 在其他模式下,>>运算符将读取一个指定类型的数据。 也就是说,它读取从非空白字符开始,到与目标类型不匹配的第一个字符之间的全部内容。 输入 单字符输入 (1)成员函数:
2021-09-07 21:54:18
873
原创 C++ 类型转换运算符
前言描述 在C语言中,类型转换,可以直接使用(type)进行类型转换。 variable = (type) variable; 在C++看来,C语言中的类型转换运算符太过松散,对于这种松散的情况,C++采取的措施是,更严格地限制允许的类型转换,并添加4个类型转换运算符,使转换过程更规范: dynamic_cast const_cast static_cast reinterpret_cast 可以根据目的选择一个适合的运算符,而不是使用通用的类型转换。 这指出了进行类型转换的原因,并让编译器
2021-09-06 21:45:24
221
原创 C++ 类模板
全文为个人理解总结用 《C++ primer plus》14章 类模板概念 有点理解不来。梳理一遍。 核心要义:模板,是为了满足重用代码的需求。 (比如一套代码,多种数据类型皆可使用。) 百度百科: 泛型即是指具有在多种数据类型上皆可操作的含义,与模板有些相似。 语法 类模板的声明和定义 一个普通的Stack类(栈类) Stack.h typedef unsigned long Item; class Stack { private: enum {MAX = 10}; Item item[
2021-09-06 00:23:10
188
原创 C语言 一个 long long 数字转 char 字符串的算法
工作需要,但是C语言标准库里没有这个,所以自己实现。 后续可以做成查询表的形式,并且加入参数 str_size; 有空再来更新,先做个记录 void lltos(char *str, long long int lli) { str[20] = '\0'; str[19] = lli% 10 / 1 + 48; str[18] = lli% 100 / 10 + 48; str[17] = lli% 1000 / 100 + 48;
2021-08-30 20:57:18
2766
1
原创 C++ 复制构造函数和赋值运算符
C++会自动提供的成员函数(如果没有定义) 默认构造函数 默认析构函数 复制构造函数 赋值运算符 地址运算符 这些默认函数均为空函数,运算符 复制构造函数 复制构造函数用于将一个对象复制到新创建的对象中。 类的复制构造函数原型通常如下: Class_name(const Class_name &); 它接受一个指向类对象的常量引用作为参数。 ...
2021-08-29 01:00:47
695
原创 C++ 奇奇怪怪的bug记录
编程奥义: 即便是new出来的内存,最好也是要清空一下。 bug1: 描述:《c++ primer plus》12章练习2 自定义类,并且重载 + 运算 String s1(" and I am a C++ student."); String s2 = "Please enter your name: "; String s3; cout << s2; cin >> s3; s2 = "My name is " + s3;
2021-08-26 23:52:24
393
原创 C++ 转换函数(类与数值之间的转换)
类的自动转换 将构造函数作为自动类型转换。 只有接收一个参数的构造函数才能作为转换函数。 explicit 关闭隐式自动转换,只允许显示自动转换 class class_x = (class )y; class class_x = class (y); 自动转换使用: 类 = (类类型)值 类的强制类型转换 转换函数必须是类方法 转换函数不能指定返回类型 转换函数不能有参数 原型示例: operator typename( ); operator double( ); double x = cla
2021-08-19 22:41:39
285
原创 C++运算符重载
运算符重载 要重载运算符,需使用被称为运算符函数的特殊函数形式。运算符函数的格式如下: 示例 解析 operatorop(argument-list) operator + 运算符 + (参数列表) operator+( ) 重载+运算符 operator*( ) 重载*运算符 operator-( ) 重载-运算符 重载限制: op必须是有效的C++运算符,不能虚构一个新的符号。 重载后的运算符必须至少有一个操作数是用户定义的类型,这将防止用户为标准类型重载运算符。(
2021-08-19 22:16:08
238
原创 C++ 类的简单定义、实现、使用
定义类 privat 私有成员,只允许通过共有成员进行访问 public 共有成员,外部接口 若未标明,则默认为私有成员 stock.h class Stock { private: public: } stock.cpp 实现类 构造函数 析构函数 对象的两种初始化方式 在这里插入代码片 ...
2021-08-10 22:03:03
462
原创 C++ 名称空间
(一)名称空间 先上定义 使用不同厂商提供的类库时,可能导致名称冲突。 名称空间是为解决名称冲突而提供的特性。 举个例子,有如下两个头文件: Jack.h #ifndef JACK_H_ #define extern double pail; extern void fetch(); extern int pal; struct Well{ .... ...}; #endif Jill.h extern double bucket(double n); extern double fetc
2021-08-08 17:44:56
141
原创 C++ 函数重载(多态)、函数模板
内容均出自《C++ primer plus》,本文仅为个人理解总结所用。 若有不明欢迎站内私信交流。 若发现文中错漏之处,期待不吝赐教站内私信。 (一)函数重载(多态) 先上定义: C++ Premer Plus (page276) 函数多态是C++在C语言的基础上新增的功能。 术语"多态":指的是有多种形式。 术语"函数重载":指的是可以有多个同名函数,因此对名称进行了重载。 两个术语是同一回事,但通常使用函数重载。 函数多态(函数重载)让程序能够使用多个同名的函数。 实例理解: 同名函数,.
2021-08-07 19:56:24
850
原创 C++ 零碎笔记
cout 输出八进制、十进制、十六进制 //可以分别使用下列代码 指定输出数值进制类型 //制定后固定不变,需要再次指定复原 cout << oct; cout << dec; cout << hex; cout 设置输出精度 //float默认显示六位小数 cout.setf(ios_base::fixed, ios_base::floatfield) //复原 cout.setf(ios_base::fixed, ios_base::fixed) ...
2021-08-06 22:15:39
208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅