- 博客(45)
- 资源 (4)
- 收藏
- 关注
原创 java流程控制
流程控制if分支while循环do-while循环for循环for-each迭代循环控制breakcontinueif分支同cpp,基本的条件分支控制语句。// 基本条件分支int choose = 5;if (choose < 3){ System.out.println("< 3");}else if (choose < 5) { System.out.println("< 5");}else { System.out.println("o
2021-09-18 22:32:44
2068
原创 java数据运算
数据运算基本运算比较运算并列比较逻辑运算位运算基本运算// 1. + 加int a = 3 + 4;// 2. - 减int b = 4 - 3;// 3. * 乘int c = 3 * 4;// 4. / 除int d1 = 5 / 5;double d2 = 3 / 2; // d2得到0.0,理解为 double = double(int / int)double d3 = 3.0 / 2; // d3得到1.5,理解为 double = double / int,不同类
2021-09-18 22:31:36
2251
原创 python流程控制
流程控制if条件分支简化if-elsewhile循环for循环循环控制breakcontinueif条件分支基本的条件判断语句,用于分支结构控制,用法如下。# 输入一个整数,按条件输出内容choose = int(input())if choose < 3: print("< 3")elif choose < 5: print("< 5")else : print("else") # 嵌套分支输出三个数最大者a = int(inp
2021-09-18 22:28:30
2089
原创 python运算
运算算术运算比较运算并列比较逻辑运算短路集合运算特殊运算容器元素个数-len地址判等-is包含关系判断-in算术运算# 1. 加 +a = 1 + 4.5# 2. 减 -b = 2 - 3# 3. 乘 *c = 2 * 3# 4. 除 /d = 3 / 4# 5. 整除 //e = 3 // 4 # 等价于int(3/4)# 6. 求幂 **f = 3 ** 2# 7. 取模g = 3 % 2# 8. +=a += 3 # 等价于 a = a + 3#
2021-09-18 22:26:45
2194
原创 c++顺序容器-双端队列deque
双端队列deque概念声明使用常用方法Example概念双端队列是一个类模板,其由若干个块构成,每个块中元素的地址是连续的,块之间的地址是不连续的。用户可以从前端或后端快速地插入与删除元素,并可以快速地随机访问元素,但在中间位置插入和删除元素速度较慢。deque不像vector一样将所有元素存放在一个连续的内存块,而是采用多个连续的存储块存放数据,由于重新分配空间后原有的元素不需要复制,所以空间的重新分配要快于vector。声明#include <iostream>#include
2021-09-13 22:51:25
210
原创 c++顺序容器-链表list
链表list概念声明使用常用方法Example元素遍历概念cpp中的list定义在库中,故使用需要#include <list>,它是一个双链表类模板,可以从任何地方快速插入与删除。它的每个节点间通过指针链接,不能像vector一样随机访问元素。list容器插入元素比vector快,对每个元素单独分配空间,所以不存在空间不够而重新分配空间的情况。声明list<int> lis1; // 声明一个(整型)空链表list<int> lis2a = list&l
2021-09-13 22:50:30
416
原创 c++关联容器-集合set和多重集合multiset
set与multiset概念使用常用方法Example概念set和multiset都是集合类模板,set中的元素值是唯一的,multiset中的元素值可以不唯一,默认情况下会对元素自动升序排序,支持数学上的集合运算,如交,并,差等。对于set,向其中插入重复的元素会被忽略。对于multiset,通过值删除元素,会删除所有值与参数相同的元素。与其他关联容器相同,set与multiset无法通过下标索引访问元素。使用常用方法set与multiset中的方法基本相同,常用方法如下:empty()
2021-09-13 22:49:39
295
原创 java数据类型
java数据类型基础数据类型引用数据类型(对象)Stringint[], double[]...ArrayList\HashMap\基础数据类型不同于python,Java作为一门面向对象的编程语言,并非所有数据类型都是对象,为了兼容cpp,java也依旧提供基本数据类型,存储在栈中.int,基础整形float,单精度浮点型double,双精度浮点型char,字符型boolean,布尔型long,长整型short,短整型// 使用int a = 1;short b = 2;lo
2021-09-10 21:24:17
206
1
原创 python数据类型
python数据类型int - 整型float - 浮点型str - 字符串bool - 布尔型list - 列表tuple - 元组set - 可变集合dict - 字典None深浅拷贝问题python作为一门面向对象编程语言,其所提供的所有数据类型都是对象,对于python中的对象,也即可以理解为java中所提供的引用类型,不同于Java,python并不兼容cpp中的基础数据类型。python中的数据声明无需像cpp或是java一样显示给出,类似于cpp中的auto自动类型判断,python中声明
2021-09-10 21:17:39
185
原创 分而治之策略-第m小的数(c++、java、python)
第m小的数问题分析代码问题给定一个无重复元素的无序数组,求其第m小的元素。如:{1,5,3,6,2,8,5} 求其第3小的元素答案:3分析直观可以考虑通过对数组进行排序求解,而基于排序算法的时间复杂度下界为O(nlogn)O(nlogn)O(nlogn),即通过排序算法求解的时间复杂度不会低于O(nlogn)O(nlogn)O(nlogn)。借助快速排序思想,每次遍历作为主元素的所在的分割位置确定后固定,当前子数组排序完成后,设主元素的索引为nnn,则nnn即为该数组中第n+1n+1n+1
2021-08-29 16:26:52
2292
原创 分而治之策略-快速排序(c++、java、python)
快速排序问题分析时间复杂度空间复杂度代码问题给定一个无序数组arrarrarr,对其排序。分析类似于归并排序在于都是使用分而治之思想,借由递归与合并的方式完成。数组划分,即对于待排序的数组,从中任意选取一个元素作为主元素,并以该元素为分割,使得它左侧的元素均小于它,它右侧的元素均大于它(左右测元素无需有序),具体步骤为随机选取一个元素作为主元素main_elementmain\_elementmain_element,将其放在数组最后(或最前,下面以最后为例)。定义索引下标iii,jj
2021-08-29 16:25:08
2252
原创 spark词频统计
spark词频统计idea配置spark单机环境请参考其他教程,这里我使用的版本信息如下JDK:1.8.0_281Scala:2.12.8Spark:3.1.1开发环境:IDEA 2020.2.3idea中新建maven项目,建议jdk版本1.8及以上,单击下一步自定义项目名称,这里为experiment1,下拉选项中groupid和version也可自定义,这里分别改为com.experiment和1.0.0,单击完成右键单击项目experiment目录选择Add
2021-08-28 13:58:18
802
原创 分而治之策略-最大子数组(java、c++、python)
目录最大子数组和问题简单枚举法进阶枚举法归并法最大子数组和问题给定一个无序数组,求其最大子数组和。subArrsubArrsubArr为arrarrarr的子数组即是说aubArraubArraubArr为arrarrarr中的某一段分片,subArrsubArrsubArr的子数组和即为该段分片中所有元素之和。具有最大子数组和的子数组记为最大子数组。简单枚举法列举所有可能的子数组,记录最大子数组和。一个长度为nnn的数组存在n(n+1)/2n(n+1)/2n(n+1)/2个非空子数组,故
2021-08-28 13:47:44
659
原创 分而治之策略-归并排序(java、c++、python)
目录二路归并问题归并排序二路归并问题问题:将两个有序数组arr1arr1arr1,arr2arr2arr2合并为一个新的有序数组arr3arr3arr3。分析:根据选择排序思想,每次循环找到两个数组中的最小元素依次追加到新数组。对于每次循环,需要找到两个数组中剩余元素的最小元素,即min{min{arr1},min{arr2}}min\{min\{arr1\},min\{arr2\}\}min{min{arr1},min{arr2}},由于arr1arr1arr1和arr2arr2arr2均为
2021-08-28 13:44:23
295
3
原创 批量新建删除更改文件后缀
导航注批量新建文件夹批量新建指定后缀文件批量更改文件后缀名目录下所有文件特定后缀名的文件批量删除指定后缀文件注shift+鼠标右键单击选择在当前位置打开PowerShell所有符号均为半角英文以下方法均能达到目的,但并非最优解删除均为直接删除,不放回收站的,当然也不可以撤销,谨慎操作批量新建文件夹# 1..10为从1到10的标记,可调整# file为名称前缀,可修改foreach($i in 1..10){ mkdir "file$i"}或mkdir $(1..10
2021-08-05 22:17:55
2914
转载 Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)
Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)
2021-08-04 16:13:38
2309
原创 关于word封面下划线不对齐的各种解决方案
解决方案序表格法标尺法手动划线法掩人耳目法序word封面下划线死活不齐平?像这样这里记录一下各种解决方案,包括正经的与不正经的。表格法优点:可借助表格相关属性快速实现部分需求,如内容居中缺点:表格替代下划线只是营造视觉假象,本质上二者属性不同,对于格式严谨的文档应慎重采用步骤:插入一个表格并适当调整填入相应内容选中表格,选择无边框线选中右侧表格,勾选下框线和内部横框线ok标尺法优点:简单便捷缺点:嗯,暂时没遇到
2021-08-02 17:34:49
9153
2
原创 linux基本命令
文章目录快捷方式Linux文件目录查看命令路径问题目录跳转目录显示目录新建目录删除文件删除解压tar包文件重命名文件重命名快捷方式tab键自动补齐命令上下方向键查询历史命令Linux文件目录Linux文件目录分为四类:可分享目录、不可分享目录、可变目录、不可变目录其次,Linux系统目录为树形结构,根节点为目录‘/’,以下为常见目录信息:/ :根目录衍生所有目录与启动、还原、系统修复等有关应用程序不要安装在该目录不同于/root目录,后者是root用户的主目录/boot
2021-07-25 18:13:23
439
原创 scala语法基础
目录@[Toc](目录)关于Scala数据类型常量和变量常量变量命名规范运算符容器数组 Array列表 List集合 Set映射 Map元组 Tuplenif分支循环函数普通函数匿名函数函数作为参数的函数函数作为返回值的函数函数柯里化函数组合器类和对象类定义单例类Scala模式匹配文件读写Scala模式匹配关于ScalaScala是在Java的基础上开发而成,运行于Java虚拟机Scala的语法结构类似于Java和python的结合如果一行只有一行语句,行尾可以不用加分号与Java不同,
2021-07-25 18:02:54
2928
原创 powershell编程
基本注释单行注释:#多行注释:<# #>#this is single-line comment<#this is multiple-line comment#>帮助命令:get-help [param]param 可选,为具体的powershell命令#e.g.get-help dir分号:每条语句可以使用一个分号结束,当然也可以不写。如果一行中存在多条语句,那就在每一句后加个分号用以分隔。代码块:和C语系的
2021-07-25 14:31:11
5993
原创 批处理命令笔记
常用批处理命令echo 打开或关闭回显echo “hello world!” 显示hello world!到终端echo “hello world!” > temp.txt 将hello world!写入到temp.txtecho “hello world!” >> temp.txt 将hello world!追加到temp.txtecho off 该行之后的命令将不在终端显示@ 后方语句执行时不在终端显示命令本身@echo off 该行及该行之后的命令将不在
2021-07-22 16:48:21
593
原创 cmd命令笔记
cmd命令快捷命令操作命令快捷命令appwiz.cpl 卸载或更改应用程序calc 启动计算器cleanmgr 打开磁盘清理工具cmd 打开cmd命令窗口shutdown 关机-s -t 60 六十秒后自动关机-a 取消定时关机任务-r -t 60 六十秒后自动重启control 打开控制面板devmgmt 设备管理器desk.cpl 显示与布局[分辨率、屏幕缩放]diskmgmt 磁盘管理dxdiag 设备directX信息检查eventvwr 事件查看器expl
2021-07-22 16:47:16
2521
原创 c++中的运算符重载
运算符重载运算符具有多态性,即同一使用方式实际调用不同的过程进行处理的这一性质,而多态性的体现有在编译时和在运行时两种,前者如函数的重载和运算符的重载,后者如虚函数一般运算符重载用于自定义的类,使自定义的类对象可以像基本数据类型一样的方式通过运算符进行基本运算的处理(如+、-、*、/),而不用采用专门定义相应处理的成员函数用以调用定义格式:<返回类型> operator <运算符> (形参1,形参2,…) {…}//如Myclass operator + (
2021-07-20 00:12:29
445
原创 c++中的预处理命令与内联函数
文章目录预处理宏定义内联函数预处理宏定义在编译前进行处理的指令(不属于C语言),编译预处理时会将源代码中的宏原封不动替换为其声明的内容体预处理常用关键字:define, include, if, endif, undef, ifdef, ifndef, error, elifdefined 不属于关键字,是运算符,结合 if 使用#if defined A && defined B 可测试多个条件,#ifdef 只可测试一个条件(ifndef同理)#if --> #el
2021-07-20 00:11:48
2701
原创 c++中的友元和组合
文章目录友元组合类友元类外部数据一般不可访问类私有成员,但如果在类中使用friend关键字声明外部某函数是其友元函数,那么就可以通过该函数函数访问到类中的私有成员,也可以在类A中声明另一个类C是其友元类,则在C中也可以访问到A中的私有成员,声明可以出现在类中的任意位置,当所声明的类C是在该类A的后面定义的,可以在类A之前作类C的前向声明 class C;(注意:类的前向声明只能用于友元声明需要、类指针以及类引用的声明需要,但在类定义出现之前仍不能声明类对象)可以声明一个类的友元为某个外部函数、另一
2021-07-20 00:11:00
2837
原创 c++中的异常处理
文章目录异常处理异常类noexcept关键字异常传播异常处理c++针对程序中出现的各类错误的处理机制,包含头: <exception>, <stdexcept>, <new>等关键字:try(可能存在错误的代码块), throw(出现错误时抛出), catch(捕获throw抛出的对应类型的异常)常见用法代码块中直接抛出异常,方括号中的异常对象形参当在catch块中用不到时可以省略,也可用引用替代try{ //do something
2021-07-20 00:09:54
3097
原创 c++中的虚函数与纯虚函数
文章目录虚函数纯虚函数虚函数由于在类的继承派生过程中,可以在派生类中定义和基类中的相同函数,但由于有时需要声明基类指针或引用去指向派生类对象,由于赋值兼容原则对于派生类中派生定义的成员是不可见的,调用同名函数的时候只能默认调用基类中的定义,而虚函数机制则可以解决这个问题,将同名函数在基类中定义为虚函数后,就可以通过基类指针或引用在调用函数时根据所指对象类型的不同而自动选择调用不同类中的函数,实现运行时的动态绑定,也是一种多态性的体现定义格式:virtual return_type <
2021-07-20 00:07:28
634
原创 c++中的强制数据转换
文章目录静态强制数据转换动态强制数据转换初始化静态强制数据转换c++在原有C语言的强制数据转换的基础之上更新了强制数据转换的方式C语言的强制数据转换的方式:type a = (type)data; 或 type a = type(data);其中的数据前的(type)data或type(data)就是说明无论data为何种类型,都将其强制数据转换为type类型,后者与Python方式相一致int a = (int)1.234;int a = int(1.234); //(二者效果一样)
2021-07-20 00:06:24
668
原创 c++中的类模板
目录类模板模板类类模板同函数模板,大部分性质相同,类模板也用于代码的重用性体现,性质可见“函数模板”定义格式:template <class NAME1,class NAME2,...> class class_name{ ///...};或template <typename NAME1,typename NAME2,...> class class_name { //...};(在模板中class 与 typename关键字的作
2021-07-20 00:05:25
2892
原创 c++中的类
类用于封装抽象出的方法和属性,包括数据抽象(数据)和行为抽象(函数)关键字:class, public, private, protected, this, final, override, mutable, explicit类的成员函数可以定义在类中,也可以定义在类外[0]^{[0]}[0],定义在类外时,类中需要给出声明,且类外函数的定义前需要加上该类域名空间(eg: 有class time类,在类外定义成员函数时就需要在函数名前加上time::)类对于其成员的保护用public,priva
2021-07-20 00:04:09
480
原创 c++静态成员与常成员
静态成员与常成员静态成员常成员和常对象静态成员在定义类中可使用static关键字定义静态成员,静态成员不属于类变量,属于类本身故静态成员的数据空间固定,且在定义时就会为其分配,在使用类声明任意数量的类变量时,不会为静态成员新分配空间,变量释放时也不会释放静态成员,任意数量变量使用同一静态成员,任一类变量修改其静态成员的值本质上都是在修改属于类本身静态成员的值定义格式:在类中任何成员的声明前面加上static关键字可定义为静态成员,且仅且仅可在类外给出定义和初始化赋值静态成员也可定义为公
2021-07-20 00:02:42
731
原创 c++继承与派生
继承和派生新声明的类如果需要包含原有类的所有成员与属性,除了傻不拉几的复制粘贴代码,还可以采用继承的方式定义新的类,继承也是面向对象的特性之一,即继承指新定义类包含了原有类的所有属性的这一性质,继承根据父类的数量可分为单继承和多继承由基类继承而来的新类,除了具有基类的所有属性之外,还可定义自己特有的属性,这类对原有属性之外的增加称为派生,而新定义的类也可称为派生类(即:派生类是由基类继承、派生而来的类)定义格式:class 类名1 :继承方式 类名2,继承方式 类名3 …{};设
2021-07-19 13:42:16
401
原创 c++函数重载和形参默认值
函数重载和形参默认值函数重载形参默认值函数重载相同功能但 不同形参类型 或 数量 的同名函数创建(这里的不同形参类型指两个同名函数中至少存在一个形参占位中的类型对应不一致),函数重载是编译时的多态不同形参类型可定义重载void fun(int a);void fun(double a);不同参数数量可定义重载void fun(int a, int b);void fun(int a, int b, int c);不同形参类型且不同形参数量可定义重载void fun(
2021-07-19 13:41:40
990
原创 c++函数模板
函数模板c++对于泛型编程和元编程的具体实现方式,某些情况下对函数重载和宏定义的上位替代,也用于同种功能的函数处理不同数据类型的的代码重用需求,使用重载函数虽然使用时直观,但实际定义时的代码量并未减少,而使用宏定义虽然达到了一个抽象处理不同类型实例的目的,但编译器对宏定义替换不作检查,同时宏定义的传入参数不可有副作用,易出错,而函数模板和模板函数则很好的规避了上述问题定义格式:template <class NAME1,…>return_type function_name (
2021-07-19 13:40:43
2692
原创 c++中的using和constexpr
using和constexpr关键字using关键字constexpr关键字using关键字命名空间及其成员的导入直接导入整个命名空间//e.g. // using namespace space_NAMEusing namespace std;//注:不要在同一程序中引入两个及以上的命名空间导入某一命名空间的单个成员//e.g. // using namespace space_NAME::space_MEMBER using namespace std::cout;
2021-07-19 13:35:54
2706
原创 c++中的struct和enum关键字
struct和enum关键字structenumstructc++中的结构体struct:之所以单独提及c++中的结构体是因为在c++中,结构体的这个类型已经得到了完全的扩充,事实上几乎完全可以将结构体struct与类class相互替换,只需注意些许细微的差异即可,是的,在c++中,结构体这一类型本身已经被扩充到和类几乎完全一样了,成员函数、继承、派生、基类、虚基类、虚函数、纯虚函数等性质均被引入到了结构体中,同时在声明结构体实例的时候也完全可以选择性带上或者不带struct关键字(C语言中强制带上
2021-07-19 13:34:31
3177
原创 c++顺序容器-string类型
string类型string类型string类型c++中新增的数据类型,用于优化C语言在字符串处理不便,string类型的相关操作及其处理函数等可#include 头实现,同时string类型也对相应运算符进行了重载以下介绍相应的处理方法,string类中的常用函数可分类为:1.构造 2.追加 3.赋值 4.位置与清除 5.长度与容量6.比较 7.子串 8.搜索 9.运算符string类的几种初始化(构造函数调用):string str:生成空字符串string s(str):生成字符
2021-07-19 13:33:32
710
原创 c++中的qsort和sort和lambda表达式
qsort和sort与lambda表达式qsort函数sort函数lambda表达式qsort函数qsort函数为C语言标准库函数,包含在<cstdlib>头中,其涉及各种类型的排序,可将基本排序问题转化为比较大小的问题:qsort(排序首指针,排序个数,单个元素字节数,比较函数)其形参的参数包括自定义比较函数的调用,可采用指向函数的指针进行操作编写比较函数的格式已经被限定,形参为两个 const void* 的指针,返回值为int,且第一个参数大于第二个参数返回正数,相等返
2021-07-19 13:31:17
1669
原创 c++中的final与override
final与overridefinal关键字override关键字final关键字c++中的final关键字主要有两个用途:用于类:告诉编译器该类不可被其他类继承,如:class End final{ ...... };则其他类再继承End时编译器将会报错用于虚函数或纯虚函数的重写:告诉编译器该虚函数的重写到此结束,之后以该类为基类的类将禁止对该函数再进行重写(定义完全一致的函数会报错,定义符合重载的同名函数会遵行同名访问原则),如:class base { public:
2021-07-19 13:14:35
1227
原创 c++中的auto与decltype
auto与decltypeauto关键字dectype关键字auto关键字auto关键字:虽然c++大部分继承了C语言,但在c++11中对auto关键字重新进行了定义,C语言中auto关键字同static一样为变量显式声明其生存期,对于局部变量的声明自动省略了auto,如int a等价auto int a;故auto关键字在C语言中几乎很难用到,于是c++11给出重新的定义用于代码;作用:auto关键字用于声明自动根据其赋值类型而选择其类型的变量,如声明auto a = 1;将自动识别赋值(int
2021-07-19 13:13:30
2246
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人