自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

念去去

臣门若市,臣心如水

  • 博客(42)
  • 收藏
  • 关注

原创 随笔---

三更酒冷,马瘦西风烈临江拍案,独醉与君绝唱八千里云月,一路侠歌,从此眉间飞雪闭口不谈圆缺

2022-04-17 11:34:15 367

原创 ubuntu更换内核

ubuntu更新之后发现内核版本升级了,如果想用回原来的内核:sudo vim /etc/default/grub修改:GRUB_DEFAULT="1>2"#GRUB_TIMEOUT_STYLE=hiddenGRUB_TIMEOUT=10sudo update-grub重启之后可默认进入原来的内核版本

2022-03-14 09:52:22 1842

翻译 C++提高编程(黑马程序员笔记)

本阶段主要针对C++泛型编程和STL技术做详细讲解,探讨C++更深层的使用1 模板1.1 模板的概念模板就是建立通用的模具,大大提高复用性例如生活中的模板一寸照片模板:PPT模板:模板的特点:模板不可以直接使用,它只是一个框架模板的通用并不是万能的1.2 函数模板C++另一种编程思想称为 泛型编程 ,主要利用的技术就是模板C++提供两种模板机制:函数模板和类模板1.2.1 函数模板语法函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体.

2021-08-04 23:14:35 1843

翻译 C++面向对象 - 运算符重载、友元函数和STL

复数运算任务描述本关任务:设计一个复数类并实现复数的三种运算。相关知识所谓重载,就是赋予新的含义。函数重载可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载也是一个道理,同一个运算符可以有不同的功能。本关我们就一起来学习运算符重载的使用。运算符重载运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符声明方式如普通成员函数一样,只不过他的名

2021-07-26 00:12:13 11200 1

翻译 C++面向对象 - 继承、派生和多态

公有继承 —— 学生信息类任务描述本关任务:采用公有继承设计学生信息类。相关知识继承继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一。简单的说,继承是指一个对象直接使用另一对象的属性和方法。C++ 中的继承关系就好比现实生活中的父子关系,继承一笔财产比白手起家要容易得多,原始类称为基类,继承类称为派生类,基类是对派生类的抽象,派生类是对基类的具体化。它们是类似于父亲和儿子的关系,所以也分别叫父类和子类。而子类又可以当成父类,被另外的类继承。继承方式不同的继承方式决定了基类成

2021-07-26 00:04:47 5420 3

翻译 C++面向对象 - 类和对象

设计一个学生信息类任务描述本关任务:声明并定义一个学生信息类。相关知识为了完成本关任务,你需要掌握类的声明和定义。类在现实世界中,经常有属于同一类的对象。例如,你的自行车只是世界上很多自行车中的一辆。在面向对象软件中,也有很多共享相同特征的不同的对象,可以利用这些对象的相同特征为它们建立一个集合,而这个集合就称为类。C++ 中类是把各种不同类型的数据(称为数据成员)和对数据的操作(成员函数)组织在一起而形成的用户自定义的数据类型。它提供了可重用性的好处。类定义包括声明和实现两大部分。声明部分

2021-07-26 00:04:35 5817 1

翻译 C++文件及综合练习

使用文件流操作文本文件任务描述本关任务:编写一个统计本月服装的销售情况的函数。相关知识我们在编写程序的时候,最密不可分的就是对文件进行相应的操作,我们可以从文件中读取数据,可以将数据保存到文件,可以……总而言之,言而总之,一言以蔽之,对文件的操作是非常重要的,下面我们就来介绍一下 C++ 中是如何对文件进行操作的。文件流操作文件在 C++ 中,对文件的操作是通过 stream 的子类 fstream( file stream )来实现的,所以,要用这种方式操作文件,就必须加入头文件,代码如下:

2021-07-26 00:04:24 4517

翻译 C++数据结构

任务描述本关任务:程序输入苹果数 m 和人数 n,要求输出每个人平均可以分到多少个苹果,并将计算结果存入到变量 x 中。相关知识C 和 C++ 的程序中,每个数据对象都必须有确定的数据类型。这是为什么呢?我们知道,计算机内存中的数据都是0、1串,例如下面这16位0、1组成的串。01000001 01000010那么这个0、1串到底代表什么意思呢?同样的这一段0、1串,如果是8位整数,则是两个整数65和66;如果是字符,则是‘A’和‘B’;如果是16位整数,则是16706。同一串数据,赋予不同

2021-07-25 13:48:30 8319 1

翻译 C++程序控制

任务描述字符变量用来存储字符,一个字符占1个字节(8位),字符存储的其实是 ASCII 码表中所对应的整数,这些整数以 0-1 串来表示。那么每个字符对应的 0-1 串到底是什么呢?本关任务输入一个字符,输出该字符在内存中存储时对应的 0-1 串。例如:‘A’的 ASCII 码是65,对应的8位二进制 0-1 串是 01000001。相关知识本关将介绍如何通过位运算来获得一个字符对应的字节值(即8个位对应的 0-1 值)。首先介绍一下位运算的基本知识。位运算位运算允许在二进制位级别上对数据进

2021-07-25 13:40:52 6072

翻译 C++数据结构之线性表

任务描述本关任务:用户输入两个四位数以内的整数,请你对两个整数进行四则运算(为保证除法能正确计算,输入的第二个整数不能为0),要求输出的四则运算表达式是完整对齐的。例如,给定输入1256和20,其符合上述对齐要求的四则运算的输出格式应该如下所示(为了让空格显示的更直观,这里暂用下划线_表示空格):1256 + 20__ = ___12761256 - 20 = ___12361256 * 20 = __251201256 / 20 = _______62相关知识程序的输出格式对用户体验影响很

2021-07-25 11:37:58 1548 1

原创 C++指针

地址和数据:内存相当于是一个个的小盒子,每个盒子对应一个编号,这个编号就是地址,盒子里存放的就是数据,指针和地址是一个概念。& 是取址运算符,如有 int a; 即有一个小盒子里面存放的数据起名叫a,&a就是取a的地址,即该盒子的编号。* (地址)是取值运算符,是解引用操作符,可以理解成打开对应地址编号的盒子,取出里面的数据。*(&a) 就是打开a对应的小盒子,取出里面的数据,即 * (&a)和a等价。我们定义一个指针变量int *p; p是指针变量,专门用来存放地址。

2021-07-17 17:55:18 192

原创 行为树(Behavior trees)

文章目录行为树组合节点次序节点选择节点并行节点修饰节点逆变节点成功节点重复节点叶子节点行为树行为树由多种不同类型的节点组成,这些节点都会返回三种状态中的一种作为节点的运行结果。三种状态分别是:成功 - Success失败 - Failure运行中 - Running前两个,正如它们的名字一样,是用来向它们的父节点通知运行的成功或失败。第三种是指还在运行中,结果还未确定,会在下一个 Tick 的时候再去检查这个节点的运行结果。这个功能非常重要,它可以让一个节点持续运行一段时间来维持某些行为。比

2021-07-08 15:18:38 5829

原创 C++核心编程(黑马程序员笔记)

C++核心编程本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。1 内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程1.1 程序运行前​ 在程序编译后,生成了ex

2021-07-06 14:39:20 6861 13

转载 C++基础教程(黑马程序员讲义)

文章目录C++基础入门1 C++初识1.1 第一个C++程序1.1.1 创建项目1.1.2 创建文件1.1.3 编写代码1.1.4 运行程序1.2 注释1.3 变量1.4 常量1.5 关键字1.6 标识符命名规则2 数据类型2.1 整型2.2 sizeof关键字2.3 实型(浮点型)2.4 字符型2.5 转义字符2.6 字符串型2.7 布尔类型 bool2.8 数据的输入3 运算符3.1 算术运算符3.2 赋值运算符3.3 比较运算符3.4 逻辑运算符4 程序流程结构4.1 选择结构4.1.1 if语句

2021-07-04 23:53:40 12280 16

原创 Equalizer并行渲染使用方法

四个界面同时渲染建立名为4-node.eqc的配置文件,内容如下:global{ EQ_WINDOW_IATTR_HINT_FULLSCREEN OFF} server{ connection { hostname "192.168.198.160" port 4241} config { appNode { ...

2019-09-25 14:38:57 669 2

原创 Ubuntu安装Equalizer-针对研究所机型详细安装步骤

在一台全新的机器上安装Equalizer,具体步骤如下:环境换源安装依赖配置git环境安装Equalizer安装显卡驱动环境换源换成阿里云的源,具体步骤百度:命令行更新按键Ctrl/Command + Alt+T输入以下:sudo apt-get upgraedsudo apt-get update安装依赖sudo apt-get install mesa-utils n...

2019-09-25 14:11:58 440 2

原创 ubuntu16.04安装NVIDIA显卡驱动

环境系统:ubuntu16.04电脑配置:Intel® Xeon® CPU E3-1220 v6 @ 3.00GHz × 4显卡型号:Quadro K620驱动下载驱动下载网址我的驱动型号下载地址安装驱动更改属性sudo ls -lh /etc/modprobe.d/blacklist.confsudo chmod 666 /etc/modprobe.d/blacklist.c...

2019-09-25 10:03:31 393

原创 ubuntu安装Equalizer

ubuntu16.04安装Equalizer安装依赖安装Equalizer安装依赖sudo apt-get install mesa-utils nvidia-current nvidia-current-dev freeglut3-dev build-essential libtool libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libgl...

2019-09-25 09:34:30 523

原创 win10+mysql安装配置

1.下载下载地址:mysql (8.0.12)选择第一个。2.环境配置MySQL 的bin路径 mysql-winx64\bin,放到环境变量中。配置完成后,打开cmd命令窗口,输入mysql -V, 如果输出版本号,表示配置成功。3.MySQL配置打开解压文件夹,新建一个my-default.ini文件输入:[client]port=3306default-characte...

2018-11-03 16:40:27 856 2

原创 输出和返回值区别

写了一段代码递归二分查找,如下:#include <iostream>using namespace std;int BinarySearch(int a[], int x, int left,int right){ int mid = (left+right)/2; if(x == a[mid]) { return mid; ...

2018-11-02 19:34:43 7205

原创 条款26:尽可能延后变量定义式的出现时间

&emsp只要你定义了一个变量而起类型带有一个构造函数和一个析构函数,那么当程序控制流到这个变量的

2018-11-02 11:32:17 132

原创 金庸武侠年表

公元前483年 西施送入吴国;范蠡遇到阿青,阿青传越国剑士剑法。公元前476年 越国灭掉吴国;范蠡与西施隐居,阿青离去。527年 南北朝时期,印度高僧菩提达摩来到中国,在嵩山少林寺面壁九年,创立中国禅宗。536年 达摩逝世554年 西魏宇文泰攻破江陵城(今荆州),梁元帝萧绎留下宝藏在天宁寺,连城诀宝藏来源于此隋朝末年,李靖将《易筋经》中的武学奥秘,尽数领悟。640年 侯君集攻破高昌国...

2018-10-30 21:36:23 465 1

原创 terminator打不开(闪退)

在一开始安装了ubuntu18.04之后,马上安装了terminator,后来因为要使用python,电脑里有两个版本的python,一个2.7一个3.6,发现终端输入python之后默认是2.7版本,想要使用3.6就得输入>>oython3.6觉得有点麻烦,就修改了默认3.6版本,后来就发现terminator打不开,查找了解到terminator是基于python2的,所以进...

2018-10-29 13:37:08 3574 2

原创 opencv之core模块

Mat - 基本图像容器参考自:opencv中文网关于 Mat ,首先要知道的是你不必再手动地(1)为其开辟空间(2)在不需要时立即将空间释放。但手动地做还是可以的:大多数OpenCV函数仍会手动地为输出数据开辟空间。当传递一个已经存在的 Mat 对象时,开辟好的矩阵空间会被重用。也就是说,我们每次都使用大小正好的内存来完成任务。基本上讲 Mat 是一个类,由两个数据部分组成:矩阵头(...

2018-10-29 13:00:47 3269

原创 条款23:宁以non-number、non-friend替换member函数(未完)

。。。

2018-10-27 16:24:04 346

原创 条款22:将成员变量声明为private

public意味着不封装,不封装意味着不可改变,特别是对广泛使用的class而言,被广泛使用的class是一个最需要封装的族群。Protected的封装性并非高过public成员,某些东西的封装性与“当其内容改变时可能造成代码的破换量”成反比,从封装的角度来看,只有两种访问权限,private(提供封装)和其他(不提供封装)。 请注意切记将成员变量声明为private。这可赋予客户访问数据...

2018-10-27 16:12:15 155

原创 条款21:必须返回对象时,别忘想返回其

举世誉之而不加劝,举世非之而不加沮虽然值传递存在效率等方面的问题,但是不能够一味地追求引用传递从而犯下一个错误,:开始传递一些引用不存在的对象。所谓的引用只是个名称,代表某一个既有的对象。任何时候看见一个引用声明式,都应该立刻问自己,他的另一个名称是什么?因为他一定是某一物的另一个名称。所以为了返回其引用,必须创造这个对象。创造对象的方法有以下两种:在stack空间在heap空间如...

2018-10-27 15:20:47 151

原创 条款20:宁以pass-by-reference-to-const替换pass-by-

码了一天的教程,没有保存关机了,所以决定每一个条款发一篇博客,看完这本书之后再以章节排版用引用传递代替值传递的好处:成本降低//此会造成构造函数和析构函数的多次创建bool validateStudent(Student s)Student plato;bool platoIsOK = validateStudent(plato)改成bool validateStudent(...

2018-10-26 16:47:06 118

原创 条款6:若不想使用编译器自动生成的函数就应该明确拒绝

条款6:若不想使用编译器自动生成的函数就应该明确拒绝通常,如果不希望class支持某一些待定机能,只要不声明对应函数就是了。但是这个策略对copy函数和copy assignment操作符却不起作用,条款5指出,如果你不声明它们,而某些人尝试点用他们,编译器会自动为你声明他们。方法1 所有编译器产出的函数都是public,所以你可以将copy构造函数或者copy assignment操作符声明...

2018-10-26 16:27:39 142

原创 条款4:确定对象被使用前已先被初始化

条款4:确定对象被使用前已先被初始化初始化有的会认为进行了,有的却不认为,有的次语言被初始化,而有的不会,所以最佳处理办法为:== 永远在使用对象之前先进行初始化,无论任何成员的内置类型,必须手工完成此事== int x = 0; //对int进行手工初始化 double d; std::cin >> d; //以读取input ...

2018-10-26 16:25:10 124

原创 条款3:尽可能使用const

条款3:尽可能使用constconst提供一个语义约束,指定一个“不该被改动的对象”,而编译器会强制实施这项约束。指出指针自身、指针所指物、或者两者都不是const:char greeting[] = "hello";char* p = greeting; //non-cost pointer,non-const dataconst char* p = greeting; ...

2018-10-26 16:24:39 102

原创 条款2:尽量以const、enum、inline替换#define

条款2:尽量以const、enum、inline替换#define-------宁可以编译器替换预处理器const可替换#define,但是有两个特殊情况:定义常量指针。由于常量定义式通常被放在头文件内(以便被不同的源码含入),因此有必要将指针(而不是指针所指之物)申明为const。例如:在头文件内定义一个常量的char*-based字符串,必须写两次constconst c...

2018-10-26 16:23:49 149

原创 图形界面root模式

命令sudo nautilus

2018-10-25 21:59:04 753 2

原创 C++接口

设计抽象类(通常称为 ABC)的目的,是为了给其他类提供一个可以继承的适当的基类。抽象类不能被用于实例化对象,它只能作为接口使用。如果试图实例化一个抽象类的对象,会导致编译错误。因此,如果一个 ABC 的子类需要被实例化,则必须实现每个虚函数,这也意味着 C++ 支持使用 ABC 声明接口。如果没有在派生类中重载纯虚函数,就尝试实例化该类的对象,会导致编译错误。可用于实例化对象的类被称为具体类。...

2018-10-23 16:58:18 2101

原创 条款19:设计class犹如设计type

条款18.让借口容易被正确使用

2018-10-23 16:23:56 159

翻译 堆栈区别

C++编译的程序占用的内存分为以下几个部分栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式类似于链表。全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态...

2018-10-23 16:03:47 2272

原创 条款5:了解C++默默编写并调用了哪些函数(未完)

条款5:了解C++默默编写并调用哪些函数。。。条款6:若不想使用编译器自动生成的函数就应该明确拒绝。。。条款7:为多态基类声明virtual析构函数。。。...

2018-10-21 11:46:51 177

原创 条款1:视C++为一个语言联邦

条款1:视C++为一个语言联邦C++是相关语言组成的联邦而非单一语言。其主要次语言:C。C++以C语言为基础,其对问题的解法不过是较高级的C解法C:语句、区块、预处理器、内置数据类型、数组、指针C++:模版、异常、重载Object-Oriented C++。这一部分是面向对象设计之古典守则在C++上最直接实施(C with Classes)。包括classes、封装、继承、多态、vi...

2018-10-19 18:27:47 197

原创 刷题记录

###下面程序出现什么问题?void test2(){ char string[10], str1[10]; int i; for(i=0; i<10; i++) { str1 = 'a'; }strcpy( string, str1 );}数组名str为 char *const类型的右值类型,根本不能赋值。想对数组的第一个元素赋值,也要使用 *str1 = '...

2018-10-17 19:07:21 476

原创 计算机系统漫游

开始看深入理解计算机操作系统这本书,并记录学习过程。

2018-10-17 09:12:32 197

空空如也

空空如也

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

TA关注的人

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