自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 资源 (1)
  • 收藏
  • 关注

原创 容器的线程安全性

容器的线程安全性

2023-03-01 14:30:17 978 1

原创 go:GMP模型

GMP模型要点

2023-02-27 17:39:41 401

原创 智能指针【auto_ptr与unique_ptr】

为什么弃用auto_ptr,unique做了啥

2022-10-08 20:43:03 317

原创 Eigen最经典的操作

1、声明与赋值1.1、声明1.1.1、在编译期不确定矩阵(向量)大小,如下 MatrixXd mat; Matrix<double, Dynamic, Dynamic> mat; //typedef Matrix<double, Dynamic, Dynamic> MatrixXd; VectorXd v;1.1.2、在编译期确定矩阵(向量)大小 MatrixXd mat(2,4); Matrix<double, 2, 4> mat;

2022-02-13 23:57:53 846 1

原创 js原型与原型链

一、什么是原型原型是对象。包括显式原型对象和隐式原型对象。显式原型对象:只有函数对象才有显式原型对象,如下图所示F

2022-02-04 12:04:18 1429

原创 你需要来自XXX的权限才能对此文件进行更改

大家能打开这篇博客说明一定遇到了类似如下的问题:就是你删除文件的时候,提示你需要来自XXX的权限才能对此文件(夹)进行更改解决问题最简单的办法:移动文件夹到C盘ProgramFiles,然后右键删除即可这样就不需要修改什么权限了...

2022-01-13 10:04:26 510 1

原创 Mysql使用初始默认密码登陆后第一件事就是修改密码,如下

alter user ‘root’@‘localhost’ identified by ‘123456’;

2021-11-21 20:06:21 275

原创 LeetCode刷题:8. 字符串转换整数 (atoi)

class Solution {public: int myAtoi(string s) { if(s.empty()) return 0; int i = 0; while(s[i] ==' ') ++i; s = s.substr(i); int positivenum = 0,negativenum = 0,numnum = 0; long long int res = 0

2021-10-24 18:11:13 1250

原创 常用且方便的vim命令总结

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-10-23 16:03:34 106

原创 n皇后问题

问题描述:存在n*n的格子,往里放n个皇后(棋子),对每一个放入的棋子要求其同一行、同一列以及对角线不能存在其它的棋子。输出在数目为n的情况下所有的排列情况问题解答:1.主体函数如图所示,一共有n行,使用a这个数组记录此行的棋子摆在第几列,例如a[3]= 7的含义就是说第三行的棋子摆在第七列,从第一行开始摆棋子,如果check函数返回true表明这个位置可以摆放就标记a数组,递归进行下一行,知道第n+1行此时得到所有棋子位置,输出。在dfs返回后就清空a数组用于下一种排列方式使用。void dfs(

2021-10-12 20:36:39 107

原创 简洁的Makefile总结

1.Make的含义是制作,因此输入make就是为了制作某个文件,比如说我想制作a.out这个文件,那么很简单直接输入make a.out显而易见,仅仅是输入这条语句是不会有任何作用的,因为make并不知道如何去制作a.out,需要有人提供给它制作的规则,而这样的规则就卸载Makefile这个文件中2.通常写完Makefile后我们会在bash上输入make然后就会执行相应的规则去制作文件,make会默认寻找第一个目标去创建,因此我们要把最后的目标放在第一个的位置,这样它就会为了生成这个最后的目标去检

2021-10-10 15:58:17 335

原创 Windows下Ceres库的配置 包含四个依赖库Eigen、gflags、glad、suitesparse-metis-for-windows的配置

一、首先Windows下Ceres库的配置过程中Eigen、gflags、glad是必须的,suitesparse虽不是必须但非常影响性能故也可以说是必须的。二、整个配置过程主要参考这一博客博主猪蹄97关于ceres库的配置,侵删,故读者在读到本博客时可以结合这篇博文,并以链接中的博文为主,本篇博文为辅,希望能帮到您三、本篇博文的定位是做一些补充并解决几点配置过程中的问题1.首先如无必须更改的原因。建议就按以下的版本进行配置:Eigen3.3.8、gflags2.2.2、glad0.4.0、suite

2021-10-09 18:27:24 965

原创 STL源码中List类大小变化

1.首先所有的STL容器都遵循前闭后开的特性,List也不例外,因此List的设计中一直会有一个空的结点。2.在GNU2.9中List只有一个成员变量,是指向结点的指针,因此类的大小为4;而在GNU4.9中List的大小为8因为此时的成员变量存储了两个指针,这两个指针是空结点的前向和后向指针。...

2021-08-20 16:57:07 165

原创 为什么STL中的list容器有属于自己的排序(sort)函数?

1.整个STL设计的指导思想是GP,即模板编程。在此思想的指导下,少了面向象编程的类继承、虚函数、多态等的设计,取而代之的是数据与方法的分离,表现在STL中将容器与算法分离,两者分别闭门造车,中间依靠迭代器联系。2.故sort算法被单独剥离出来,与所有的容器分开。虽然想的挺好但是总有例外,list容器就是那个例外。从源码可以看出,sort函数用到的迭代器的操作链表是不可能做到的,故list需要设计自己的sort函数。...

2021-08-16 13:36:29 883

原创 c++ 知识点小结

1.委托构造函数允许使用类中的某一构造函数调用同类中的其它构造函数。#include <iostream>using namespace std;class Test{public: Test() {}; Test(int max) { this->m_max = max > 0 ? max : 100; } Test(int max, int min):Test(max) { this-&

2021-07-24 17:45:20 143

原创 c++:返回类型后置语法

返回类型后置语法:作用:在并不关心函数的返回值时使用。用法:auto和decltype结合使用得到返回类型。例子:如图所示, 我们并不需要关心foo_func函数的返回类型,直接进行推导即可。#include <iostream>int& foo(int i){ return i;}float foo(float& i){ return i + 0.1;}template<typename T> auto foo_func(T& t

2021-06-15 22:50:56 217

原创 c++11:decltype

1.首先针对decltype有两种表达方法,分别是不带括号的和带括号的。2.其次,对于这两种表达方式的区别体现在变量上:只要是带了括号就取被推断变量的引用,不带括号就直接取被推断变量定义时的类型3.另外,如果被推断的是函数调用,则无论是带括号还是不带括号得到的都是函数的返回类型。4.最后,如果被推断的是运算表达式,如果表达式得到的右值,则无论是带括号还是不带括号得到的都是被推断的类型;如果表达式得到的左值,则无论是带括号还是不带括号得到的都是被推断的引用。具体的,2,3,4条对应的代码如下:在这

2021-06-08 16:06:44 282

原创 Pytorch小结

1.加载数据集(1)直接使用torchversion提供的datasets,则采用以下方式进行加载:train_set = torchvision.datasets.CIFAR10("./dataset", train=True, transform=torchvision.transforms.ToTensor(), download=True)这一代码加载的是CIFAR10这个数据集,只有1G左右比较容易下载。(

2021-06-05 16:04:18 277 2

原创 解决(快tm进来看):【pytorch在windows下】EOFError: Ran out of input

问题描述:先是你自己的文件中的错误提示之后是torch\utils\data\dataloader.py中的错误提示最后是multiprocessing\spawn.py的中的错误提示然后一个EOFError: Ran out of input解决办法:找到自己文件中调用torch.utils.data.DataLoader这个方法的地方,修改这个方法的一个参数即可:修改其中的num_workers = 0即可。...

2021-06-03 14:43:15 2012 3

原创 解决(快tm进来看):【CUDA】No CUDA toolset found.

运行某个程序需要CUDA10.1,故下载并验证成功后。遂用cmake编译下载的程序不成想竟落得如此下场:No CUDA toolset found.nmd,老子把10.1装的好好的你弄的熊咧。经过一番倒弄,原来是10.1出来的时候vs2019还没有正式发行故是不支持的,当时我一看到这里觉得完了又得重新从下载vs2017来一遍了(这里有一个大麻烦是vs2019的卸载,根本不可能卸载干净)。但是,我看到了这句话:CUDA10.1(10.1.105) Feb 2019:CUDA Doced that

2021-06-02 22:23:23 5731 2

原创 解决(快tm进来看):【anaconda】Collecting package metadata (current_repodata.json): failed

如果说你是这种情况:无论是update还是create都提示这句话并且后面没有什么https之类的,如果此时你正在科学上网的话解决方法是:停止科学上网再去创建和更新。

2021-06-02 21:19:36 240

原创 成员变量的初始化,easy

1.静态常量数据成员可以在类内初始化,即类内声明的同时初始化,也可以在类外,不能在构造函数中初始化,也不能在构造函数的初始化列表中初始化2.静态非常量数据成员只能在类外也不能在构造函数中初始化,不能在构造函数的初始化列表中初始化;3.非静态的常量数据成员可以在类内初始化和初始化列表中初始化,不能在构造函数中初始化4、非静态的非常量数据成员随便初始化以上基于c++11及以上...

2021-06-01 21:43:50 161

原创 OpenGl(1) VAO、VBO、EBO的理解

1.顶点缓冲对象VBO是在显卡存储空间中开辟出的一块内存缓存区,用于存储顶点的各类属性信息,如顶点坐标,顶点法向量,顶点颜色数据等。在渲染时,可以直接从VBO中取出顶点的各类属性数据,由于VBO在显存而不是在内存中,不需要从CPU传输数据,处理效率更高。所以可以理解为VBO就是显存中的一个存储区域,可以保持大量的顶点属性信息。并且可以开辟很多个VBO,每个VBO在OpenGL中有它的唯一标识ID,这个ID对应着具体的VBO的显存地址,通过这个ID可以对特定的VBO内的数据进行存取操作。2.VAO本身并没有

2021-05-23 13:11:49 3419 2

原创 C++ 多线程(4) 信号量、async、future_status、shared_future、packaged_task、promise

1.首先信号量是与互斥量配合使用的,使用wait()可以放弃锁,等待其它线程唤醒后(使用notify_all()或者notify_one())再继续获得锁。当然wait()函数是可以有第二个参数的,第二个参数可以是任何的可执行对象,这样被唤醒后不会直接参与锁的竞争而是先去检查第二个参数是否返回true,如果返回false则会继续等待,只不过此时的等待是在醒着的状态下。2.等待可以使用另一个函数wait_for(),可以可以在wait的基础上多加一个参数即时间,如果直到时间截止都没有被唤醒或者唤醒后可执行对

2021-05-22 15:19:48 251

原创 C++ 多线程(3):单例类 双重锁定

1.c++实现单例类,几点说明:(1)通过私有化构造函数使你不能自由创建对象(2)只能通过GetInstance得到一个实例(对象)(3)而且可以看出只要创建了第一次以后再调用此方法就返回第一次创建的对象的指针,故曰:单例类(4)通过类中类来析构创建的对象,不能直接用Model类的析构函数来析构(5)其中也利用了静态变量的生存周期是整个源程序这一点,静态私有成员变量与静态公共成员变量的区别跟静态没关系就是私有与公共的区别。在私有下,静态成员变量即不能通过类直接访问也不能通过对象直接访问class

2021-05-18 09:25:35 692 1

原创 c++ 多线程(2):共享数据的保护lock_guard、unique_lock

主要针对多个线程之间共享数据展开的一些讨论:1.多个线程之间针对共享数据进行读或者写,需要通过信号量进行加锁进行操作。即lock(),unlock()2.这一对操作跟指针的使用有着某种异曲同工之妙,因此诞生了一个lock_guard()的类模板,可以帮你自动管理unlock(),查看源代码如图:(1)与智能指针一样,这个lock_guard 就是个类,然后在你用std::mutex变量作为参数进行构造时就会自动调用这个变量的lock()(2)之后在析构时就会自动调用unlock()(3)可以看出你

2021-05-16 18:32:34 477

原创 games101 作业7 path tracing

一、先上图:左边整个渲染过程耗时:1小时右边整个渲染过程耗时:35小时(未用多线程)还是右边好看点(tmd当然了)二:代码Vector3f Scene::castRay(const Ray &ray, int depth) const{ Vector3f L_dir = { 0,0,0 }; Vector3f L_indir = { 0,0,0 }; Intersection intersection = Scene::intersect(ray);

2021-05-16 12:57:56 2334 3

原创 c++ 多线程(1)

1.如果使用detach,thread函数就不要用指针传递!尤其注意字符串char数组2.如果使用detach,如果要传递对象,不要使用隐式转换,使用隐式转换时构造和拷贝啥的都会在子thread进行,如果主thread退出还没开始转换很危险!要在传入参数进线程时就构造好再传进去。3.故用个屁的detach,就用join4.传递对象时即使thread函数的形参是可以接收引用的,直接将一个对象传入也会发生拷贝构造,故这就不是真正的引用了。5.要想真正的传递引用就要在传入时使用std::ref()这样传入

2021-05-15 15:26:49 84

原创 关于类的成员函数到底是一种怎样的存在?

1.首先对于静态成员函数不做讨论,众所周知是属于类的2.所有的成员函数在类编译时就创建好了,故它们是存在对象空间之外的地方。故创建对象时只是创建属于这个对象的成员变量而没有成员函数。如果成员函数的参数没用到成员变量的话,不管此成员函数是不是static的,都能正常工作。3.非静态成员函数是属于对象的。4.如下图代码所示,会执行printA(),但是不会执行printB(),因为是在构造函数中进行虚表的创建和虚表指针的初始化。故这里没有执行构造函数自然找不到虚函数指针指向的位置。class D{p

2021-05-15 14:48:43 330

原创 window10搭建pyspark,记录一下太繁琐了,帮踩坑

1.下载jdk1.8并配置环境变量jdk1.8下载地址2.下载hadoop-2.7.7并配置环境变量hadoop下载地址3.下载spark-2.4.7-bin-hadoop2.7并配置环境变量spark下载地址4.下载python3.7的解释器并配置环境上述环境变量的配置看文末。5.下载hadooponwindows-master并且按照这篇文章配置配置hadoop文章6.找到下载的spark-2.4.7-bin-hadoop2.7下的pyspark文件夹(比如我的在E:\environ

2021-04-24 12:35:26 226

原创 GAMES101-讲课极棒的闫令琪老师-个别概念理解

知识点一:抗锯齿WHY:为什么采样之后会有锯齿?一句话:信号变化的频率高而采样的频率低,这里的变化频率高低不只是指时间上,更直观的是说所采样物体的复杂程度(应该是这样)。HOW:原理上怎样做能够抗锯齿?涉及到信号处理的部分内容:...

2021-04-19 21:29:21 311

原创 图形学不懂啊(2)

1.what is the meaning of this picture?答:(1)按图形学中逆的定义来说逆向旋转theta角度和正向旋转theta角度是互逆的,因为这两个操作是互逆的。(2)第一个式子是旋转theta角度需要左乘的矩阵,而旋转负theta角度仅需把负theta带入即可得到第二个式子,经观察正好是第一个式子的转置。而第二个式子按(1)来说就必须是第一个式子的逆,故逆与转置相等。(3)作用:因此要求一个点旋转负theta角度需要左乘的矩阵直接将旋转theta角度需要左乘的矩阵转置即可

2021-04-13 19:15:17 108

原创 图形学不懂啊(1)

1.主要讲了引入齐次坐标:作用是把各种各样的不同的变换给写成同一个形式,变换后的坐标都等于一个矩阵乘原来坐标的形式!代价就是引入了额外的数字,最后一维为1,表示点(point), 为0表示向量(vector)。其中的这个矩阵也是有规律的,如图所示分为三部分,左上方的2x2是原来的线性变换的矩阵,右方是平移的矩阵。下方是固定的。例如三种变换(缩放剪切、旋转、仿射)的那个矩阵分别是:![在这里插入图片描述](https://img-blog.csdnimg.cn/2021041311402570.png?

2021-04-13 12:12:41 75

原创 图形学入门都不算(0)

线性代数回顾以及联系:1.向量点乘以及联系:(1)重点就是利用点乘中的角度!而且有一个好处是如果点乘的两个向量是单位向量,那么点乘所得的就是两者的角度!1.向量叉乘以及联系:(1)判断一个向量在另一个向量的左边还是右边,例如判断b在a的左边还是右边,用a叉乘b得方向向上故在左边;同时判断a在b的左边还是右边,用b叉乘a得方向向下故在右边。注意:向量的叉乘所得向量方向满足右手定则。(2)判断点在里面还是外面,三条边分别叉乘AP,如果说得到的方向都相同无论是都向上还是向下,都可以判断在里面,否则在

2021-04-12 21:53:04 79

原创 flask外传:重新回顾github的上传

1.首先下载git2.在项目在的地方打开git bash①首次使用需要使用git init,会在当前目录下生成一个.git文件,以后再上传本项目就不用再init了。②将.gitignore文件放在该目录下,里面是不需要上传的文件的规定③git add --all加入除了在.gitignore文件存在的其他文件④ git commit -m “first” 提交本地仓库,并将本次提交命名为first⑤git remote add origin git@github.com:sunbingteng/

2021-04-12 14:48:48 124

原创 flask(三)

1.session和cookie技术:都是为了保存用户的一段时间的登录验证信息的。cookie:忙的是客户端,需要每次访问服务器时都要带着cookiesession:忙的是服务器,建立一张表记录用户及其对应的session,session中记录该用户的信息。注意session肯定是有定时器的,不可能永远保存2....

2021-04-12 14:28:40 62

原创 超级好用!pycharm下载某个模块超时Read timed out

输入命令如下:pip --default-timeout=100 install 库名称 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 注意替换库名称觉得好用的评论好用到pb

2021-04-11 19:02:46 276

原创 flask(二)

1.什么是快乐星球,什么是跨站请求伪造攻击CSRF?属实明白了,就是利用了cookie会在会话期间保存用户认证信息。访问完某个网站后没有关闭会话,之后在其他网站故意设置陷阱引导你进入以前进入的网站(尚有cookie保存)办坏事。因此就是说,用app.config['SECRET_KEY'] = 'hard to guess string'这句代码配置了一个秘钥防止这种攻击,不用摆直接写上就行了。2.Flask-WTF 扩展可以把处理 Web 表单的过程变成一种愉悦的体验。这个扩展对独立的 WTFor

2021-04-11 18:46:57 122

原创 flask(一)

1.首先记住约定大于配置,省略了大量java的繁冗复杂的配置2.flask的各种扩展全是对象的概念3.@app.route('/user/<name>')当输入这个url时例如:/user/sbt便跳转到相应的视图函数进行处理4.使用 flask的Jinja2模板,也是flask的一个扩展,是为了实现表现逻辑的。使用真实值替换变量,再返回最终得到的响应字符串,这一过程称为渲染。为了渲染模板,Flask 使用一个名为 Jinja2 的强大模板引擎。(1)使用模板时后端传参是使用return

2021-04-11 12:19:02 99

原创 什么鬼,1005不会!

#include<iostream>using namespace std;int ans[52];int main(){ int i,a,b,n,cicle,start,j; while(cin>>a>>b>>n&&!(a==0&&b==0&&n==0)) { ans[1]=1,ans[2]=1;ans[51]=-1; for(i=3;i<=

2021-03-21 13:21:40 59

stm32学习用手册.zip

精心收集了分散各处不易查找的各种参考手册,包括STM32中文参考手册_V10、STM32F103用户中英文手册等等,提供给大家使用,欢迎下载

2020-04-11

空空如也

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

TA关注的人

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