自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

转载 C++11类内static成员变量声明与定义

众所周知,将一个类内的某个成员变量声明为static型,可以使得该类实例化得到的对象实现对象间数据共享。在C++中,通常将一个类的声明写在头文件中,将这个类的具体定义(实现)写在cpp源文件中。因此,就引出了static成员变量的声明与定义问题:1. 如果一个类内成员变量是static的,且需要将之设定为常量(const),那么这个变量声明与初始化均可写在头文件内。...

2019-09-20 11:09:00 998

转载 C++11通过拷贝构造器拷贝const字段(待解决)

问题梗概如标题所述。在今天实现Token类的时候,遇到的问题。我希望将Token类设定为immutable属性的,这样实现的方式是将这个类内的所有字段均设置为const型,同时每个字段均为public可访问型。类内主要有两个字段:mark(枚举类型,用于标记当前Token对象所代表的具体类型,比如INT,CHAR等);匿名union字段,用于存储mark标记下对应的具体值。...

2019-09-19 22:08:00 952

转载 macOS 10.14+ 安装LTP

  LTP是哈尔滨工业大学(HIT,窝工)出品的一个自然语言处理工具包。其功能包括中文分词(“分词效果好于jieba分词”[引用自学长])、词性标注、实体识别等。  对于macOS来说,现有的版本可能不多,但最新版依旧支持,这一点和Windows用户是一样的。  总体步骤可以参考如下博客:macOS安装pyltp  说实话,上面这篇博客写的有点繁琐,建议全都读一遍,明白各个步...

2019-06-04 22:25:00 275

转载 C++中的可调用对象

  在C++中,常常会利用函数来简化程序流程。函数的存在使得C++整体更加“模块化”,因而也使得代码可读性大大提高。  在C++程序中,常常会很灵活地调用函数来实现不同的功能与目的(函数重载、继承多态等等)。在一些情况下,可以传入类似函数一样的可调用对象,使得这一用法更加强大。  下面是简单整理的几种调用方法:  首先,给定一个共同的前提。标准库提供了排序算法来帮助设计者实现...

2019-03-08 23:07:00 247

转载 C++中的随机数

  事情的开始是这样的,在大二的时候,写了几种排序算法,为了测试,就要为数组(或者容器)赋予一些随机初值,自然就用到了C/C++中的随机函数。  当时为了调用简单,将随机数赋值的过程写到了一个单独的函数里,这样一来,为数组(或容器)赋值就可以简洁高效。  但是,问题就是,按理来说,每次调用都该得到不同的随机数列,然而事实证明,“接连被赋值的数组”得到的随机数列却是一样的......

2019-03-07 22:05:00 264

转载 C++中函数访问数组的方式

  在书写C++代码时,往往为了令代码更加简洁高效、提高代码可读性,会对定义的函数有一些特殊的要求:比如不传递不必要的参数,以此来让函数的参数列表尽可能简短。  当一个函数需要访问一个数组元素时,出于上述原因,往往也希望令传入的参数尽可能的少(至少我是这样...)。  首先,引出一个例子,对于std::vector<typename>来说,往往只需要传递一个参数就足够...

2019-03-06 23:37:00 991

转载 函数的参数传递方式

  在本学期(大三春)“编译系统”上,辛(明影)老师问了这样一个问题:    源程序如下,问函数Produce参数按照“传值调用”、“传地址调用”的最终输出:Produce(x, y, z): y = y + 1; z = z + x;Main(): int a = 2, b = 3; Produce(a+b, a, a);...

2019-03-06 17:01:00 98

转载 C/C++中size_t潜在的问题

  在C++中,利用数组下标访问数组元素时,常常将下标类型定义为size_t类型,因为正常来说,数组的下标就是size_t类型。例如这样:for (size_t i = 0; i < container.size(); ++i)  然而具体来说,size_t是一个和机器相关的unsigned类型。重点就在于... size_t是一个unsigned类型的数值类型。因而,在C...

2019-03-01 18:46:00 433

转载 汉字编码方案

  由于计算机只能处理数字,因此,当需要用计算机来处理字符(以及字符串)的时候,就要有一种机制来实现字符到数字的转换,这便是字符串的编码。  最开始的时候,计算机只有英文字符,故需要编码的符号比较少。此时用的编码为ASCII编码,其中包括大小写英文字母、数字以及一些符号(如图)。  此时实现这些字符的编码,只需要一个字节就够了(即8位)。但是对于中文来说,需要对汉字进行编码时...

2018-09-03 22:55:00 585

转载 README

  如今来看,计算机发展中,最火热的,就是人工智能(Artificial Intelligence, AI),我对于人工智能的理解,就是通过简单的人机交互(对人类而言,即正常的行为举止),让计算机理解人类的意图,并进一步进行反馈,以满足人类对其的相关需求。这个过程说起来很简单,其应用场景也十分广泛,甚至我们每个人都可以在想象中实现这个过程。当然,若想实现人工智能,就需要在很多方面实现突破...

2018-09-03 11:34:00 82

转载 Java中的协变与逆变

  Java作为面向对象的典型语言,相比于C++而言,对类的继承和派生有着更简洁的设计(比如单根继承)。  在继承派生的过程中,是符合Liskov替换原则(LSP)的。LSP总结起来,就一句话:    所有引用基类(父类)的地方必须能够透明地使用其子类的对象。  LSP包含四层含义:    ① 子类完全拥有父类的方法,且具体子类必须实现父类的抽象方法;    ② 子类...

2018-06-22 22:46:00 143

转载 Java的equals方法实现及其细节

  判断两个对象是否等价,是OOP编程中常见的需求(下面围绕Java来进行阐述)。  考虑这样几种情况:通过某个特征值来判断两个对象是否“等价”,当这两个对象等价时,判断结果为true,否则结果为false。  当然,这里的“特征值”不会只是简单的“对象引用”,事实上,Object类(Java的“对象世界”的根)中实现的equals方法,就是把“特征值”设定为“对象引用”来进行判...

2018-06-19 16:51:00 182

转载 Java的clone方法效率问题

  在Java中,经常会需要新建一个对象,很多情况下,需要这个新建的对象和现有的某个对象保持属性一致。  那么,就有两种方式来实现这个对象的构造:    ①通过新建一个对象,为这个对象的属性根据原有对象的属性来进行赋值    ②调用clone方法,来实现实例对象的克隆  对于Java的clone方法,需要注意的就是它实际上是一种“浅克隆”(Shallow Clone),对...

2018-05-24 09:25:00 320

转载 Mac的Terminal中无法使用mvim解决方案

  对于每个人来说,都会有特别喜欢的编辑器。对于很多热爱Unix/Linux的人来说,Vim/vi肯定是很熟悉的“编辑利器”了。  当然,对于Mac用户来说,肯定也不乏对Vim狂热的人。庆幸的是,Vim对Mac用户提供了一个独立的应用程序MacVim。  作为一个Unix的衍生系统,macOS自然支持用户与OS通过Shell来交互,因此也就引入了要讨论的问题: 在Mac终端下,输...

2018-05-20 23:52:00 385

转载 SC.Lab3对于Factory的构建过程(from HIT)

  Factory设计模式基本就是通过传入指定的参数/或者不传入参数,通过Factory的某个方法(为了避免实例化Factory对象,一般方法为静态static),来获取一个对象。这个是Factory用的比较多的地方。对于Vertex和Edge的Factory来说,通过传入一些构建对象所需的信息来自动创建一个对象,这样也就避免了重复调用Vertex/Edge自身的方法来为Vertex/E...

2018-05-02 20:39:00 143

转载 关于Lab3中对于正则表达式的应用

  在这里记录一下关于软件构造课程Lab3中关于正则表达式的应用。  在实验内容中,要求用正则表达式来匹配读入文件的内容,从而取得构建图需要的相关信息。  举个例子,读入的文件(GraphPoetTestFile.txt)内容如下:  先说一下文件内容中的数据格式:  ①一定有一行,第一个单词为"GraphType",后面是一个空格、一个'='、一个空格,加上一个"类...

2018-04-30 12:53:00 108

转载 关于Java构造类与对象的思考

  简单记录一下Java构造类与对象时的流程以及this和super对于特殊例子的分析。  首先,接着昨天的问题,我做出了几个变形:  Pic1.原版:  Pic2.去掉了T.foo方法中的this关键字:  Pic3.在原版的基础上抹掉了B.foo方法:  Pic4.抹掉了原版的B.foo方法,同时去掉了T.foo方法中的this关键字:  这四...

2018-03-23 21:41:00 99

转载 一个Java的小问题

  老师今天在讨论群里抛出了一个问题,让大家尝试思考一下他所给的一段代码输出是什么。  其代码如下:  class T { void foo() { this.bar(); } void bar() { System.out.println("T.bar"); } public static void main(String args[]) ...

2018-03-22 17:46:00 79

转载 “持有对象”小记

  关于《Java编程思想》第十一章“持有对象”一个内容的思考    在书中第244页,提到了这样的一个方法:Collection.shuffle() 方法。其功能是打乱一个 List 中的元素的顺序。  在这一页的下方,举了这样一个例子:  根据这段代码,如果直接来看,可以这样分析:    list1引用指向了一个全新的ArrayList,其内容为数组ia的元素...

2018-03-15 00:30:00 53

转载 Git简记

  本文从Git的命令入手,根据不同的应用场景,对每个命令都会有简单的说明(若有变化,请以官方说明为主)。  Git初始化:      $ git init      本命令会初始化这个Git仓库,通过命令$ ls -a 可以看到多出了一个.git目录(文件夹,以下简称为目录,即以Unix说法为主)。这个.git目录中包含了这个Git仓库中相关Git的信息。    ...

2018-03-12 10:38:00 78

转载 软件构造 Lab1

  大二软件构造第一次实验  本人本次实验操作系统:macOS high Sierra 10.13.3    任务一:MagicSquare  对于本任务,主要需要实现两个方法,一个是isLegalMagicSquare方法,一个是generateMagicSquare方法。  首先,是要实现isLegalMagicSquare方法,该方法是根据一个String fi...

2018-03-03 16:42:00 644

空空如也

空空如也

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

TA关注的人

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