- 博客(51)
- 收藏
- 关注
原创 马尔可夫过程
强化学习所研究的是作为主体的智能体与作为客体的环境交互的序贯决策过程。在数学上,我们会将其规范化为一个马尔可夫决策过程(Markov Decision Process,简称为MDP)。由于MDP是强化学习所面对的问题,所以在本书的第一章,我们将首先介绍什么是MDP。我们将循序渐进,先介绍马尔可夫性过程,然后介绍MDP,再介绍MDP的不同分类。
2022-10-24 11:12:52
3713
4
原创 操作系统进程详解
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,例如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。所以,虽然上述两个进程的虚拟地址是一样的,但是其页表的映射是不同的,才能将不同的数据映射到不同的物理地址上。多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为。.........
2022-08-29 12:00:03
1791
5
原创 Linux基础开发工具
在上面的例子中,他会找到“mytest”这个文件,并把这个文件作为最终的目标文件。如果mytest文件不存在,或是mytest所依赖的后面的mytest.o文件的文件修改时间要比mytest这个文件新(可以用 touch 测试),那么,他就会执行后面所定义的命令来生成mytest这个文件。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。...
2022-08-10 18:10:48
727
3
原创 C++类型转换
因此C++提出了自己的类型转化风格,注意因为C++要兼容C语言,所以C++中还可以使用C语言的转化风格。C++通过以下方式来支持RTTItypeid运算符、dynamic_cast运算符、decltype。编译器在编译阶段自动进行,能转就转,不能转就编译失败。...
2022-07-31 18:33:37
426
6
原创 C++智能指针
if(b==0)throwinvalid_argument("除0错误");//1、如果p1这里new抛异常会如何?//2、如果p2这里new抛异常会如何?//3、如果div调用这里又会抛异常会如何?try{Func();}可以发现,当我们抛出异常后,原先申请的空间并没有释放掉,这就会造成一个严重的问题,内存泄漏。内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。...
2022-07-31 16:07:54
738
2
原创 C++异常
实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么对于外层的调用者很不友好,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以很好的进行异常的处理。//服务器开发中通常使用的异常继承体系classException{publicint_id;};public";};public";}};public";str+="";};...
2022-07-29 15:57:57
452
3
原创 C++特殊类以及单例模式
设计模式(DesignPattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化一个类只能创建一个对象,即单例模式,该模式可以保证系统中该类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。...
2022-07-16 21:32:29
945
3
原创 Linux背景介绍以及常用指令
系列文章目录文章目录系列文章目录Linux背景一、Linux的基本指令ls(list)指令pwd(print working directory)指令cd(change directory)指令touch指令mkdir(make directory)指令rmdir(remove directory)指令和rm(remove)指令man指令二、使用步骤1.引入库2.读入数据总结Linux背景要想了解Linux的背景,首先还是要从UNIX讲起:1968年,一些来自通用电器公司、贝尔实验室和麻省理工
2022-07-08 21:35:16
963
6
原创 C++中的多态
系列文章目录C++中的继承C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类C++list类C++stack和queueC++双端队列C++模板进阶C++IO流C++中的继承文章目录系列文章目录一、多态是什么?二、多态的定义及实现1.多态的构成条件2.虚函数重写的两个例外3. override 和 final4.重载、重写(覆盖)与重定义(隐藏)总结一、多态是什么?多态的概念:通俗来说,就是多
2022-05-17 18:06:26
1344
13
原创 C++中的继承
系列文章目录C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类C++list类C++stack和queueC++双端队列C++模板进阶C++IO流文章目录系列文章目录前言一、什么是继承?二、基类和派生类的赋值转换三、继承中的作用域四、派生类的默认成员函数五、继承与友元和静态成员的关系六、菱形继承与菱形虚继承总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门
2022-05-15 16:39:58
925
6
原创 C++IO流
系列文章目录C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类C++list类C++stack和queueC++双端队列C++模板进阶文章目录系列文章目录前言一、流(stream)是什么?二、C++的I/O流1.C++标准IO流2.C++文件IO流三、stringstream的介绍前言在C语言中,我们用到最频繁的输入输出方式就是scanf和printfscanf:从标准输入流(键盘)读数据并存放在
2022-05-14 13:35:51
587
5
原创 C++模板进阶
系列文章目录C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类C++list类C++stack和queueC++双端队列文章目录系列文章目录前言一、非类型模板参数二、模板的特化1.函数模板特化2.类模板的特化三、分离编译总结前言模板是C++中泛型编程的基础。一个模板就是一个创建类或函数的蓝图。一、非类型模板参数模板参数分为类型模板参数和非类型模板参数。类型模板参数:出现在模板参数列表中,跟在
2022-05-13 11:26:21
707
11
原创 C++双端队列
系列文章目录C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类C++list类C++stack和queue文章目录系列文章目录前言一、dequeue是什么?二、dequeue的优势三、dequeue的缺陷前言在介绍双端队列以前先来介绍一下容器适配器适配器是标准库中的一个通用概念,容器,迭代器,和函数都有适配器。本质上,适配器是一种机制,能使某种事物的行为看起来像是另外一种事物一样。一个容器适配器接受一
2022-05-12 21:19:30
5825
7
原创 C++stack和queue
系列文章目录C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类C++list类文章目录系列文章目录一、stack是什么?二、stack的使用三、queue是什么?四、queue的使用五、优先级队列六、优先级队列的使用一、stack是什么?1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。2. stack是作为容器适配器被实现的
2022-05-12 20:39:06
902
8
原创 C++list类
系列文章目录C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类文章目录系列文章目录一、list是什么?二、使用步骤1.引入库2.读入数据总结一、list是什么?list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素与后一个元素。list与forward_li
2022-05-07 14:27:20
3185
6
原创 C7510:类型从属名称的使用必须以“typename”为前缀
项目场景:为了方便测试,写了一个通用的迭代器打印模板,如下:template<class Con>void PrintContainer(const Con& x){ Con::const_iterator it = x.begin(); while (it != x.end()) { cout << *it << " "; ++it; } cout << endl;}问题描述本来觉得没什么问题,可是运行之后却报出了
2022-05-06 16:47:07
1917
原创 C++vector类
系列文章目录文章目录系列文章目录一、vector是什么?二、常用接口说明1.常见的构造函数2.vector iterator的使用3.关于vector的容量4.vector的增删改查2.读入数据总结一、vector是什么?vector是表示可变大小数组的序列容器,类似于数组,vector也采用连续的存储空间来存储元素。这就意味之可以通过下标对vector中元素进行随机访问。同时,其大小是可以动态改变的,会被容器自动处理。本质上讲,vector使用动态内存分配数组来存储它的元素。当新元素插入时,这
2022-04-26 22:21:44
2699
7
原创 C++string类
系列文章目录文章目录系列文章目录前言一、标准库中的string类1.string类简介2.常用接口说明3.string类对象的访问及遍历操作二、使用步骤1.引入库2.读入数据总结前言在C语言中,字符串是以’\0’结尾的字符的集合,为了操作方便,C标准库提供了一些str系列的库函数,但这些库函数与字符串是分离开的,不符合面向对象的编程思想,而且底层空间需要用户自己管理,稍不留神可能就会造成越界访问。所以,C++标准库中增加了string类。一、标准库中的string类1.string类简介s
2022-04-22 16:40:34
6555
11
原创 C++模板初阶
系列文章目录文章目录系列文章目录一、泛型编程二、函数模板2.1 函数模板格式2.2 函数模板原理2.3 函数模板的实例化2.4 模板参数匹配原则三、类模板3.1 类模板的定义格式一、泛型编程我们知道,如果要在C++中实现一个通用的交换函数,可以使用函数重载,例如:void Swap(int& a, int& b){ int temp = a; a = b; b = temp;}void Swap(double& a, double& b){ do
2022-04-12 20:16:26
126
11
原创 C/C++内存管理
系列文章目录文章目录系列文章目录一、C/C++内存分布二、C++内存管理方式2.1 对于内置类型2.2 对于自定义类型三、operator new与operator delete函数3.1 operator new与operator delete3.2 operator new与operator delete的类专属重载。四、new和delete的实现原理。4.1 内置类型4.2 自定义类型五、定位new表达式(placement-new)六、1.引入库2.读入数据总结一、C/C++内存分布当C/C
2022-04-11 17:32:08
2047
11
原创 C++类和对象(下)
系列文章目录文章目录系列文章目录一、再谈构造函数1.1 初始化列表1.2 explicit关键字二、static成员三、友元3.1 友元函数3.2 友元类四、内部类一、再谈构造函数在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。class Date{public: Date(int year, int month, int day) { _year = year; _month = month; _day = day; } private:
2022-04-09 19:45:12
1227
18
原创 C++类和对象(中)
系列文章目录C++入门C++类和对象(上)文章目录系列文章目录前言一、构造函数二、使用步骤1.引入库2.读入数据总结前言如果一个类中什么成员都没有,简称空类。但是空类中真的是什么都没有吗?并不是的,任何一个类在我们不写的情况下会都会自动生成六个默认成员函数。构造函数析构函数拷贝构造函数运算符重载取地址操作符重载const修饰的取地址操作符函数一、构造函数我们之前定义过一个日期类:class Date{public: void SetDate(int year, in
2022-04-08 13:21:12
1244
20
原创 C++类和对象(上)
C++类和对象文章目录C++类和对象关于面向过程和面向对象一、类的引入二、使用步骤1.引入库2.读入数据总结关于面向过程和面向对象C语言是面向过程的,关注的是过程,分析求解问题的步骤,通过函数调用逐步解决问题。C++是面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间交互完成。一、类的引入在C语言中,结构体内只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。二、使用步骤1.引入库代码如下(示例):import numpy as npimport
2022-04-06 20:39:40
1571
15
原创 C++入门
C++入门文章目录C++入门一、命名空间二、C++的输入和输出三、缺省(默认)参数四、函数重载五、引用二、使用步骤1.引入库2.读入数据总结一、命名空间让我们从一个输出hello world的代码开始:#include<iostream>using namespace std;int main(){ cout << "Hello world!" << endl; return 0;}第一行代码,根据我们以往学习的C语言的知识,我们知道他是引
2022-04-05 16:04:32
1544
11
原创 数据结构之排序
数据结构之排序数据结构相关文章数据结构之线性表数据结构之栈和队列数据结构之二叉树文章目录数据结构之排序前言一、冒泡排序(Bubble Sort)二、简单选择排序(Simple Select Sort)三、直接插入排序(Straight Insertion Sort)四、希尔排序(Shell Sort)五、堆排序(Heap Sort)六、归并排序总结前言排序就是按照非递增或者非递减的方式使其成为一个有序的序列。另外需要注意的是,如果排序前两相等的元素之间的相对位置与排序后相比没有发生改变,那
2022-04-02 18:46:21
2671
15
原创 数据结构之二叉树
数据结构之二叉树数据结构相关文章数据结构之线性表数据结构之栈和队列文章目录数据结构之二叉树前言一、二叉树的定义1.1 二叉树的定义1.2 二叉树的特点1.3 特殊二叉树二、二叉树的性质三、二叉树的存储结构3.1 二叉树的顺序存储结构3.2 二叉树的链式存储四、遍历二叉树4.1 前序遍历4.2 中序遍历4.3 后序遍历4.4 层序遍历总结前言要了解二叉树,首先应该知道树是怎样的一种数据结构。树的结点包含一个数据元素以及若干指向其子树的分支。结点拥有的子树的个数称为结点的度。度为0的结点称为
2022-03-20 10:28:50
2497
18
原创 数据结构之栈和队列
数据结构之栈和队列提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档栈和队列数据结构之栈和队列一、顺序栈的定义二、顺序栈的进栈与出栈1.进栈操作2.出栈操作二、链栈的进栈与出栈1.进栈2.读入数据总结一、顺序栈的定义栈这种数据结构,就好像手枪弹夹的子弹一样,最先压进弹夹的子弹最后打出来,最后压进弹夹的子弹会最先打出来。所以这种像弹夹里的子弹一样,先进入,却是最后出来,最后进入的却最先出来的数据结构就是栈。总结一句话,就是先进后出。栈(stack)是限定在表尾进行插入和删除操作
2022-03-05 23:14:01
905
15
原创 C语言文件操作
C语言文件操作文件操作C语言文件操作一、什么是文件?二、文件指针二、使用步骤1.引入库2.读入数据总结一、什么是文件?在我们使用的计算机的磁盘中的内容都是文件。在程序设计中,文件又可以分为两种类型:程序文件和数据文件(从文件的功能分类)。程序文件:包含源程序文件(.c),目标文件(Windows环境下为.obj),和可执行程序文件(Windows环境下为.exe)数据文件:数据文件就是程序运行时读写的数据,既可以读取,也可以输出为数据内容。对于每一个文件来讲,都要有一个唯一的文件标识,
2022-02-22 19:55:14
671
15
原创 数据结构之线性表
线性表数据结构之线性表线性表一、pandas是什么?二、使用步骤1.引入库2.读入数据总结一、pandas是什么?二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')import sslssl._create_def
2022-02-13 19:21:13
473
10
原创 自定义类型
关于结构体C语言结构体关于结构体前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import nump
2022-01-27 12:13:39
640
11
原创 字符串函数
字符串函数字符串函数字符串函数前言一、strtok二、strerror前言今天给大家介绍两个并不太常见的字符串函数以及他们的使用。分别是strtok和strerror。其中,strtok可以用来分隔字符串,而strerror可以用来打印错误信息。一、strtok首先来看一下函数原型:char * strtok ( char * str, const char * sep );第一个参数str就是我们需要进行字符串分隔的字符串。第二个参数sep是一个字符串,字符串中的字符都是用来进行分
2022-01-21 18:29:31
227
1
原创 深入理解指针
深入理解指针深入理解指针深入理解指针前言一、字符指针二、指针数组三、数组指针1.数组指针的定义2.数组名和&数组名四、函数指针1.函数指针数组2.回调函数总结前言首先,我们来理解以下指针的概念:指针就是个变量,用来存放地址,而地址标识一块内存空间。指针的大小是固定的4或8个字节(32位或64位)。指针是有类型的,其类型决定了指针运算的步长,以及解引用的操作权限。一、字符指针字符指针,顾名思义,就是指向字符类型的指针。例如:int main(){ char ch
2022-01-17 18:31:08
230
16
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人