赋值语句

图论算法——基本图论算法小结

六眼飞鱼酱① 提交于 2019-11-28 01:17:20
·听了一天的浑浑噩噩 ·这个老师近距离看有点精致可爱,然鹅他过于强 ·老师经典语句: “来我们看一道简单题”,然鹅,是蓝题 “来我们再来看一道题",然鹅,是紫题 tql!!!tjl!!!%%%%% 一、图的入门介绍 ·什么是图?——G(graph)=(V(点),E(边)) 把图进行赋值,所赋值即为权值——点权,边权. ·图的储存 edge:next,to. eg:x——>y next:下一个以x为开头的边在数组的位置 to:y first:以x为开头的第一条边 储存方法:找到最后,在往前倒 板子: struct edge { int next, to; edge() {} edge(int _next, int _to) : next(_next), to(_to) {} } e[M]; void add_edge(int x, int y) { e[++tot] = edge(first[x], y); first[x] = tot; e[++tot] = edge(first[y], x); first[y] = tot; } int main() { for (int x = first[p]; x; x = e[x].next) { //find linkers of point p q = e[x].to; } } 升级版板子(带stl): #include

Jvm 系列(一):Java 类的加载机制

本小妞迷上赌 提交于 2019-11-28 01:13:02
1、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。 类加载器并不需要等到某个类被“首次主动使用”时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载它,如果在预先加载的过程中遇到了.class文件缺失或存在错误,类加载器必须在程序首次主动使用该类时才报告错误(LinkageError错误)如果这个类一直没有被程序主动使用,那么类加载器就不会报告错误 加载.class文件的方式 从本地系统中直接加载 通过网络下载.class文件 从zip,jar等归档文件中加载.class文件 从专有数据库中提取.class文件 将Java源文件动态编译为.class文件 2、类的生命周期 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定)。另外注意这里的几个阶段是按顺序开始

delphi 指针 入门

巧了我就是萌 提交于 2019-11-28 01:06:05
指针,是一个无符号整数(unsigned int),它是一个以当前系统寻址范围为取值范围的整数。指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。指针的指针就是用来存放指针所在的内存地址的。 @:取址运算符; ^:指针的引用解析操作符; ////////////////// 1,类型指针的定义。对于指向特定类型的指针 var ptr : ^Integer; ptr : ^char; 2,无类型指针的定义。也就是可以指向任何类型数据的指针。Object Pascal为其定义了一个专门的类型:Pointer。 ptr : Pointer; 3,指针的解除引用。要解除指针引用(即取出指针所指区域的值), ptr^。 4,取地址(指针赋值)。取某对象的地址并将其赋值给指针变量,ptr := @Object; 以下内容参考 delphi的帮助: 看一个指针用法的例子: 1 var 2 X, Y: Integer; // X and Y 整数类型 3 P: ^Integer; // P 指向整数类型的指针 4 begin 5 X :=17; // 给 X 赋值 6 P := @X; // 把 x的地址赋给p 7 Y := P^; // 取出p所指向的数值赋给y 8 end; 第二行定义了两个变量X,y. 第三行声明了p是指向整数类型的指针;意味着p能够指向x或者y的地址

Go语言(一) 运算符

南楼画角 提交于 2019-11-28 00:51:54
运算符用于在程序运行时执行数学或逻辑运算。 运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算数运算符 运算符 描述 +    相加 -    相减 *    相乘 /    相除 %    求余 注意: ++ (自增)和 -- (自减)在Go语言中是单独的语句,并不是运算符。 关系运算符 运算符           描述 ==   检查两个值是否相等,如果相等返回 True 否则返回 False。 !=    检查两个值是否不相等,如果不相等返回 True 否则返回 False。 >    检查左边值是否大于右边值,如果是返回 True 否则返回 False。 >=    检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。 <     检查左边值是否小于右边值,如果是返回 True 否则返回 False。 <=    检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。 逻辑运算符 运算符        描述 &&    逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。 ||    逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。 !    逻辑 NOT 运算符。 如果条件为 True,则为 False

并发之原子性、可见性、有序性

若如初见. 提交于 2019-11-27 23:27:04
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。   volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用volatile关键字的场景。   以下是本文的目录大纲:   一.内存模型的相关概念   二.并发编程中的三个概念   三.Java内存模型   四..深入剖析volatile关键字   五.使用volatile关键字的场景   若有不正之处请多多谅解,并欢迎批评指正。   请尊重作者劳动成果,转载请标明原文链接:   http://www.cnblogs.com/dolphin0520/p/3920373.html 一.内存模型的相关概念   大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快

【C学习笔记】一

荒凉一梦 提交于 2019-11-27 13:43:34
一、运算符优先级 逻辑非>算术运算符>关系运算符>逻辑运算符>赋值运算符>逗号运算符 逻辑运算符>条件运算符>赋值运算符 对于if的执行语句,如果是一条语句那么花括号可以省略,如果是多条语句那么花括号一定不能省略。 来源: https://www.cnblogs.com/dream-to-pku/p/11366140.html

面向对象/PHP

孤街浪徒 提交于 2019-11-27 12:07:50
对象:对象object是一些相关变量的方法的软件集,经常用于模仿现实世界中我们身边的一些对象 对象特征:属性,方法 JavaScript中所有事物都是对象:字符串、数值、数组、函数…… 此外,JavaScript允许自定义对象 —————— 对象的属性和方法 JavaScript提供多个内建对象,如String、Data、Array等等 对象只是带有属性和方法的特殊数据类型 一切的对象都可以加属性和方法 —————— 创建JavaScript对象 *由对象字面量创建 *由内建对象object创建 *由构造函数构造出来然后创建新的对象实例 *有函数Object.create()创建(ES5) —————— 原型:扩展系统对象的功能 优点:使用prototype属性扩展对象,可以大量减少对象的使用的内存空间 *prototype和__proto__的概念 prototype是构造函数的一个专有属性,这个属性是一个指针,指向一个对象 __proto__是一个对象拥有的内置属性,是JS内部使用寻找原型链的属性 原型链的形成真正是靠__proto__而非prototype —————— 继承:可以将一个对象扩展成为其他对象—不但可以使用对象作为原型建立其他对象,还可以扩展对象的属性和方法 模拟继承之call、apply和bind方法 —————— 构造函数:名为构造函数

JAVA基础语法练习(二)

↘锁芯ラ 提交于 2019-11-27 09:28:25
/*--> */ /*--> */ 训练案例1 训练考核知识点 if 语句; for 循环语句; 训练描述 使用 for循环 ,求出 1-100之间的奇数之和 . 操作步骤描述 1.定义一个变量 ,用来记录奇数的累加和 ; 2.for循环得到 1到 100之间的每个数字 ; 3.在 for循环里面 ,判断这个数字是否为奇数 ; 4.如果为奇数 ,就与变量累加 ; 5.for循环结束后 ,打印累加和 ; /*--> */ /*--> */ 训练案例2 训练考核知识点 选择结构 ; 循环结构 ; 训练描述 求出 1到 100之间的既是 3的倍数又是 5倍数的数字之和 . 操作步骤描述 1.定义一个变量 ,记录累加求和 2.循环遍历 1到 100之间的每个数字 3.再循环中判断该数是否为既是 3的倍数又是 5倍数 4.如果满足条件对该数进行累加求和 6.循环结束后打印求和的变量 /*--> */ /*--> */ 训练案例3 训练考核知识点 选择结构 ; 循环结构; 训练描述 从键盘上录入一个大于 100的三位数 ,求出 100到该数字之间满足如下要求的数字之和 : 1.数字的个位数不为 7; 2.数字的十位数不为 5; 3.数字的百位数不为 3; 操作步骤描述 1.从键盘上录入一个三位数 ; 2.定义一个变量 ,用来记录满足条件的数字累加之和 ; 3.使用 for循环获取

JVM系列之三:类装载器子系统

岁酱吖の 提交于 2019-11-27 07:36:48
虚拟机类装载器子系统:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 1. JVM架构图   Java虚拟机主要分为五大模块:类装载器子系统、运行时数据区、执行引擎、本地方法接口和垃圾收集模块。 2. 类的生命周期 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。 什么时候触发类加载? 1.使用new关键字实例化对象,读取或者设置一个类的静态变量的时候,调用类的静态方法的时候; 2.对类进行反射调用的时候; 3.初始化子类时,父类会先被初始化; 4.对类使用动态代理的时候需要先被初始化; 3. 类加载过程 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。   在这五个阶段中, 加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定 ,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定)。另外注意这里的 几个阶段是按顺序开始,而不是按顺序进行或完成 ,因为这些阶段通常都是互相交叉地混合进行的,通常在一个阶段执行的过程中调用或激活另一个阶段。 Java中的绑定:绑定指的是把一个方法的调用与方法所在的类(方法主体)关联起来,对java来说

python3.7知识点汇总

本秂侑毒 提交于 2019-11-27 06:00:03
Python3.7从零开始学 —|进入Python3.7的精彩世界 —|---|Python起源 —|---|—|Python作者简介 —|---|—|---|Guido von Rossum,荷兰人。1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位。1989年,他创立了Python语言。 —|---|—|Python发展简介 —|---|—|---|1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。 —|---|—|---|1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。 —|---|—|---|1999年,Granddaddy of Python web frameworks, Zope 1 was released in 1999 —|---|—|---|1994年,Python 1.0 - January 1994 增加了 lambda, map, filter