自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 boost1.72.0学习(boost开发指南第五版)构建教程及部分问题解决方案

下载安装包1.1 打开boost官网1.2 打开下载页面 跳到最下面 选择之前的版本the version history pagethe sourceforge download page.以上两种方式都可以下载使用使用vs编写代码,除特殊的需二进制库,其他的可直接包含boost头文件进行调用,方法如下图构建二进制库进入boost目录 运行booststrap.bat ,如下图会生成以下文件,如果需要修改配置,修改peoject-config.jam调用一下命令可查看

2022-03-24 16:29:42 968

原创 C++11学习之auto关键字

auto关键字在c++11之前,表示存储类型指示符,表示具有自动存储期的局部变量。比如auto int a = 0;static int j = 0;以上两者是相对的,一个在出变量作用域就会释放内存,static变量会存放在静态数据区,对于未初始化的会自动初始化未为0,在程序结束后才会释放内存。在c++11标准中,auto变成了一个类型指示符,用来提示编译器对此类型的变量做自动推导,但是有一些注意的地方需要说明,当变量不为指针或引用时,auto进行推导会抛弃const和volatile属

2021-11-25 21:37:41 1055

原创 cmake20.6+vs2019+osg3.4.0编译过程

首先要注意 下载osg源码包要从官网下载,之前使用别人的包报没有找到qt3jpeg 等包,这儿要注意。通过cmke makeosg源码生成vs工程在第二步configure 如果出现 什么错误 例如上面的没有找到 ,仔细查看提示框。在configure时出现错误 要重新换包或者别的操作,可以再file-》deletecache,清除缓存,重新选择路径。在configure界面下 选择vs2019版本 选择x64 下面的框选择第一项。在configure完成之后,一定要保证所有的框都是灰色

2021-09-30 23:06:43 456

原创 dump的自动生成

dump文件简介dump文件类型内核模式dump操作系统创建的崩溃转储用户dump具体可以分为full dump(完整dump)和minidump(迷你dump)。完整dump包含了某个进程在执行时的完整地址空间数据,以及相关的调试信息。迷你dump有许多类型,可根据需要选择不同的级别,低级别可能只包含某个线程和部分模块的信息。dump文件作用dump文件是进程的内存镜像,将程序运行时的状态保存到dump文件中,即通过静态文件查看运行态的程序。在程序出现异常终止或崩溃时

2021-08-25 22:12:07 633

原创 osg::将ive的文件转化为osg格式

找了很久的资料都没有找到,知道我知道osgconv.exe 进行相关搜索才知道这个工具是用来进行osg文件格式转化的。ive转化为osg格式可以找到osgconv所在的目录,将ive文件拖入,osgconv将会自动进行转换,并将转换后的osg文件放在于ive文件相同的路径下。具体使用命令行的方式可以游览这个网站osg中文·社区还有一些其他的相关使用工具可以自行在这个网站进行查找http://www.osgchina.org/about.php?id=23...

2021-08-06 09:55:12 1902

原创 编写osg代码读取模型文件报 warning: Could not find plugin to read objects from file “C:Userspcesktop“.

问题分析这个主要是因为字符串中反斜杠发生了转义的问题之前的代码 //读取osg模型 osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer(); //注意路径下的斜杠 viewer->setSceneData(osgDB::readNodeFile("C:\Users\pc\Desktop\000f82e6-08f6-4bd8-8306-d7217fd87197.ive")); viewer->

2021-07-28 11:09:10 1217

原创 设计模式之简单工厂模式(创建型)

通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类模式中包含的角色及其职责工厂(Creator)角色简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。抽象(Product)角色简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。具体产品(Concrete Product)角色简单工厂模式所创建的具体实例对象简单工厂模式的优缺点:在这个模式中,工厂类是整个模式的关键所在。它包含必.

2021-06-13 10:49:11 134

原创 设计模式之单例模式(创建型)

该类负责创建自己的对象,确保只有单个对象被创建,提供了一种唯一访问对象的方式。注意一个类只能有一个实例。类必须自己创建自己的唯一实例为所有对象提供这一实例分类:懒汉式在使用时才进行创建。饿汉式不管是否会被使用都进行创建。应用实例一个班级只有一个班主任一些设备管理器,输出时只能有一台打印机正在运行。实现#include<iostream>using namespace std;class single{public: single().

2021-06-12 21:23:25 136

原创 linux下进程间通信之有名管道

有名管道解决了无名管道只能在亲缘进程间通信的弊端相较于无名管道只能用于亲缘关系进程之间的通信,有名管道可以再任意两个进程间实现通信,该管道可以通过路径名使用,并且在文件系统中是可见的(无名管道不可见)。两个进程可以把FIFO当做普通文件一样进行读写操作。也是先进先出,从开始处返回数据,再末尾进行添加数据。不能使用lseek进行文件重定位。使用步骤mkfifo创建管道open函数打开文件read/write进行读写通信。int mkfifo(const char *filenam

2021-05-29 20:56:18 242

原创 linux下进程间通信之无名管道

通信方式主要有以下几种1.管道:具体分为有名管道和无名管道2.信号3.消息队列4.共享内存5.信号量6.套接字无名管道管道是单向的,先进先出,无结构,固定大小的字节流。一个进程写,一个进程读,读进程读出数据后,其他进程都无法再读。读进程如果读空管道,将会一直阻塞,在有数据写管道之前。同样,管道已经写满,再试图写,也会阻塞。特点只能用于具有亲缘关系的进程间,因为无名管道没有文件名,在使用read write等函数进行读写时只能通过无名管道的两个文件描述符fd[0]和fd[1]。

2021-05-29 19:50:40 341

原创 sizeof和strlen的区别

先上代码,看个例子 对于不同的数据他们的大小分别是多少#include<stdio.h>#include<string.h>int main(){ char str[] = "123456"; char str2[10] = "123456"; printf("%d\n", sizeof(str));//7 字符串大小 printf("%d\n", sizeof(str2));//10 数组大小 printf("%d\n", strlen(str));/

2021-05-25 18:58:45 149

原创 使用touch创建 文件名中带空格

如果我要创建 abc_xyz (_是空格)一般 使用 touch来进行创建文件touch abc空格xyz 她会创建两个文件abc和xyz解决办法1.加引号 表示要创建的文件名touch ‘abc xyz’touch “abc xyz”2.通过空格转移字符touch abc\xyz2...

2021-05-22 22:35:56 668

原创 linux命令之find命令

find命令用来在指定目录下查找文件先介绍一下linux的文件类型f 普通文件d 目录文件l 软连接文件c 字符文件b 块文件s 套接字文件linux对文件后缀没有特殊规定,通过ls -l 命令看第一个字母来确定文件类型如下图,查找目录类型的文件./表示 在当前路径下-type 类型选项d 目录文件1. 按文件名进行查找选项-name-iname 忽略大小写-iname 忽略大小写进行查找,如下图加! 表示相反的操作2.按文件类型查找这里我们查找软.

2021-05-22 22:05:09 622 9

原创 在学习引用时遇到 “间接寻址级别不同”的报错

如图上所标注的,在学习引用的过程中,我用已经定义的b(普通变量的引用)接着去引用数组的引用报了这个错发现一个是错误 “int (&)[10]”而另一个是“int &”原因:int (&arr)[10],是传递数组元素的地址(十个地址类型的元素的地址)它类似与指针的步长一样 char *p 和int *p1 当他们指向各自对应的数组类型时 p++步长为1,而p1++步长则为4...

2021-04-01 15:50:57 3456

原创 头文件不一定要以.h结尾

举例:实现两个数字交换看一下在vs下的目录结构swap.x我并没有以.h作为后缀#include<iostream>using namespace std;//实现两个数字交换的函数声明void swap(int a, int b);swap.cpp#include "swap.x"void swap(int a, int b){ int temp = a; a = b; b = temp; cout << "a = " <&lt

2021-04-01 11:06:30 574

原创 STL之map容器的三种插入方式insert emplace emplace_hint那种效率更高

结论C++11新增的emplace() 和 emplace_hint()都比insert效率高原因使用 insert() 向 map 容器中插入键值对的过程是,先创建该键值对,然后再将该键值对复制或者移动到 map 容器中的指定位置;使用 emplace() 或 emplace_hint() 插入键值对的过程是,直接在 map 容器中的指定位置构造该键值对。上代码#include <iostream>#include <map> //map#include

2021-03-31 20:15:45 4775

原创 STL之set的使用

简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素set容器的模板定义由于 set 容器存储的各个键值对,其键和值完全相同,也就意味着它们的类型相同,因此 set 容器类模板的定义中,仅有第 1个参数用于设定存储数据的类型。对于 set 类模板中的 3 个参数,后 2 个参数自带默认值,且几乎所有场景中只需使用前 2 个

2021-03-31 20:06:46 176

原创 STL之map的使用

map的介绍简介:map中所有元素都是pair pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动排序本质:map/multimap属于关联式容器,底层结构是用二叉树实现。优点:可以根据key值快速找到value值map和multimap区别:map不允许容器中有重复key值元素 multimap允许容器中有重复key值元素map容器的模板定义后两个设有默认值,大多数场景都不会用到,有些场景可能会涉及到第三

2021-03-31 19:22:41 164

原创 STL之list的使用

list容器的使用简述一下list的遍历,初始化,插入和删除,以及list自带的sort和reverse算法代码#include<iostream>#include<list>using namespace std;void printList(const list<int>& L) { for (list<int>::const_iterator it = L.begin(); it != L.end(); it++) {

2021-03-31 18:51:06 129

原创 STL之deque的使用

双端队列的一般使用直接上代码#include<iostream>#include<deque>#include<algorithm> sortusing namespace std;void printDeque(const deque<int>& d){ for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++) { cout &l

2021-03-31 16:25:51 125

原创 STL之vector使用注意点(迭代器失效,clear不回收空间,巧用swap函数)

迭代器失效问题vector容器在插入(发生扩充)和删除的过程中可能会有迭代器失效的问题,我们在使用的时候需要注意这个问题。先了解一下插入的时候为什么迭代器会失效原因在发生扩充的时候,原迭代器指向的还是原来空间的位置上代码/*------------------------------------------------------------------------ *1. *插入时发生扩充,会新开辟一块空间,不一定和原来的空间相同,造成迭代器失效 ---------------

2021-03-31 15:49:43 556

原创 STL之vector容器的使用

vector容器的使用这里我做了封装了遍历,初始化,插入,删除函数,遍历接受一个容器的引用,具体看代码。基础使用#include<iostream>#include<vector>using namespace std;//遍历vector容器的几种方法 还有一种是通过增强for循环来使用void printfVector(vector<int> & v){ for (auto i = v.begin(); i < v.end(); i

2021-03-31 15:27:00 76

原创 STL之vector容器底层实现

vector在向vector插入元素时,空间够,正常插入,如果空间不足则调用insert_aux辅助函数(不只被push_back调用,在实现时不仅仅满足vector需求)insert_aux的实现保存原来空间的大小,在扩充时以两倍扩充。8->16;finsh = new_start;然后将原来的数据拷贝到新vector,原来的vector销毁(涉及到大量的拷贝构造和析构函数,花费大量的开销)vector iterator概述vector的数据安排及操作方式,与数组非常相似,但数

2021-03-31 10:49:45 840

原创 STL之分配器

分配器allocator的实现1. 在vc98中allocaters的实现1.new调用malloc函数2.allocate调用new函数2.在BC5中allocator的使用实现原理3.G++2.9stl1. 对allocator的使用(使用alloc)注意 他有allocator但没有放入标准库里,而是使用了alloc2.alloc的实现原理设计了十六条链表,每一条链表负责某一个固定大小的区块,为什么不建议使用分配器分配器的申请的释放底层实现实现就是malloc和

2021-03-31 10:42:31 792

原创 数据结构之冒泡排序

交换类排序法所谓交换排序法是指借助数据元素之间互相交换进行排序 的方法。冒泡排序与快速排序法都属于交换类排序方法。 交换排序— 冒泡排序:基本思想:比较相邻的元素。 如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。 这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要较。/* * @Author: Godfiry * @Date: 2

2021-03-24 16:59:59 229

原创 vue使用giee下载的框架无法显示树形结构

问题如下:使用gitee项目做二次开发,有用到table的上下级显示,但是无法显示,最初以为是自己写的代码有问题,但采用element-ui的原数据也无法正常显示,如图一这是element-ui的原数据显示解决办法1.查看当前的node版本号查看全局安装中是否有早前安装的nodenpm ls -g --depth=0 我的npm是4.0.x,我以为是这儿的问题,换成3.11.0版本npm uninstall -g @vue/cli 卸载npm install -g

2021-03-16 18:40:50 304 2

原创 使用IDEA创建springboot项目

1.点击文件->新建->项目选择创建maven项目如图2.编辑pom.xml文件1.填写packaging标签,指定项目的类型项目的类型:pom、jar、warpacking默认是jar类型,pom ---------> 父类型都为pom类型,一般用于父子项目,分模块进行开发,便于扩展jar ---------> 内部调用或者是作服务使用war ---------> 需要部署的项目(web项目)2.导包写在 depend

2021-03-15 19:59:09 218 2

原创 vue新建一个项目

1.使用cmd进入项目要创建的目录在cmd操作中我们需要在不同分区中进行跳转,但我们进入文件夹用的cd命令在分区跳转中失灵了解决办法:如图第二步 输入E: 就可以跳转了2.vue create 项目名3.选择项目配置因为我安装的是最新版的vue4.5所以会选择vue.js的版本是2.0还是3.0最后两步会问你是否需要保存预设并用到以后的项目中,我选择yes,回车下一步问你保存的preset的名字是什么,我设为testPreset,回车下一步直到安装完成。成功安装4.进入项目

2021-03-15 19:17:04 127

原创 IDEA上传项目到gitee

教程安装中自己出现的问题填写gitee路径之后再输密码时错误 造成上传失败push to origin/master was rejected解决办法:在要提交的项目目录下右键选择Git Bash Here依次执行命令:git pull origin master –allow-unrelated-historiesgit push -u origin master -f根据提示输入github用户名和密码登录github刷新页面,上传成功...

2021-03-10 19:48:48 131

原创 Error:java: Compilation failed: internal java compiler error 解决办法

解决办法https://blog.youkuaiyun.com/wo541075754/article/details/82119860https://blog.youkuaiyun.com/ruoxiyun/article/details/88256928

2021-03-10 09:31:03 103

原创 vue搭建项目时没有选择less或是引入lang=“less“时报错

如图报错原因:vue在创建项目时没有选择Less解决办法:安装依赖npm install node-sass --save-dev //安装node-sassnpm install sass-loader --save-dev //安装sass-loadernpm install style-loader --save-dev //安装style-loader有的教程可能会让配置build/webpack.confog.js,这一步是不需要的,vue-load已经为我们配置好了{

2021-03-08 21:52:03 1065

原创 springmvc servlet的命名规则

(1)springmvc配置文件的命名方式<servlet-name>springmvc</servlet-name>该标签中为DispatcherServlet起的名字是什么,对应的配置文件就命名为:name-servlet.xml(2)自定义springmvc配置文件命名对namespace变量设置值:WebApplicationContext的命名空间。默认是[servlet-name]-servlet<init-param> <param

2021-03-07 10:19:12 992

原创 springmvc的配置

首先创建一个maven项目,参考链接https://blog.youkuaiyun.com/qq_44004011/article/details/1142627921.打开pom.xml文件进行导包打开网址https://mvnrepository.com/搜索spring找到如图所示的包选择需要的版本,点击复制到pom.xml文件中同样的方法导入jstl(配置视图解析器)servlet,完成后如图2.配置web.xml文件<?xml version="1.0" encodin

2021-03-07 10:17:45 107

原创 IDEA报The selected directory is not a valid TomEE home 错误

Idea配置Tomcat时,出现The selected directory is not a valid TomEE home,这种错误。解决方法:原因:配置tomcat选择了TomEE点击运行时运行的是TomEE

2021-03-05 21:34:50 2856 3

原创 lombok的配置和使用

1.项目中引入Lombok打开网址 https://mvnrepository.com/2.IDEA下载插件文件->设置选择Plugins,搜索lombok,点击安装安装完成后重启IDEA让插件生效3.使用lombok

2021-03-05 12:41:06 191

原创 使用IDEA对项目进行导包(以mysql为例)

1.打开网址https://mvnrepository.com/如图所示界面2.搜索mysql根据的自己的要求来选择,这里我选择第一个选择自己需要的版本,我这里选择5.1.47点进去直接复制,导入到maven项目中

2021-03-05 11:18:09 292

原创 使用IDEA封装自己写的jdbcutil

1.创建maven项目2.配置pom.xml文件3.实现jdbcutil代码4.封装jar去maven的配置路径里找maven的配置教程

2021-03-05 11:04:40 349 1

原创 利用servlet将数据库内容显示到网页上

目录结构Student类package com.wy.pojo;public class Student { private Integer id; private String name; private Integer sex; private Integer gradeId; private Integer score; public Integer getId() { return id; } public

2021-03-03 19:09:25 8565 2

原创 Jdbc封装为util

package com.util;import java.lang.reflect.Field;import java.sql.*;import java.util.ArrayList;import java.util.List;public class jdbcUtil { /** * 连接的数据库地址 jdbc:mysql://主机名:端口号?字符编码 * 其中:jdbc: mysql://localhost/openemm?这个代表数据库链

2021-03-03 19:02:11 148 1

原创 IntelliJ IDEA 出现“ java: 程序包javax.servlet不存在、 java: 程序包javax.servlet.annotation“等错误

原因:IntelliJ IDEA 没有导入 servlet-api.jar 这个.jar包,需要手动导入。导入步骤如下:选中项目,右击选择“Open Modules Settings”,选择“Libraries”,点击“+”,选“Java”;在弹出的窗口中选择tomcat所在的目录,在lib目录下找到servlet-api.jar这个jar包导入完成即可。...

2021-03-03 18:57:05 843 1

linux作业.pdf

linux课设作业,包括创建目录并挂载,建立用户组并设置权限,ftp进入部门目录进行修改权限,使用xftp进行文件上传权限测试

2020-05-07

空空如也

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

TA关注的人

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