last

LinkList源码浅析

假如想象 提交于 2019-11-30 16:54:40
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable { //实际的存储对象的数量,transient的作用是使得改成员变量不会被序列化 transient int size = 0; //第一个结点 transient Node<E> first; //最后一个结点 transient Node<E> last; //内部结点类,它的实例对象就是双向链表的一个结点 private static class Node<E> { //存储的元素对象 E item; //指向前一个结点的引用 Node<E> next; //指向后一个结点的引用 Node<E> prev; //内部结点类构造方法 Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next = next; this.prev = prev; } } //无参构造方法 public LinkedList() { } //利用一个容器对象进行初始化 public LinkedList(Collection<? extends E> c) {

insert和delete底层实现的方式

蓝咒 提交于 2019-11-30 16:25:47
operator delete ()全局函数原型: /* operator delete: 该函数最终是通过free来释放空间的 */ void operator delete(void *pUserData) { _CrtMemBlockHeader * pHead; RTCCALLBACK(_RTC_Free_hook, (pUserData, 0)); if (pUserData == NULL) return; _mlock(_HEAP_LOCK); /* block other threads */ __TRY /* get a pointer to memory block header */ pHead = pHdr(pUserData); /* verify block type */ _ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)); _free_dbg( pUserData, pHead->nBlockUse ); __FINALLY _munlock(_HEAP_LOCK); /* release other threads */ __END_TRY_FINALLY return; } /* free的实现 */ #define free(p) _free_dbg(p, _NORMAL_BLOCK)

MysqL主从复制_模式之GTID复制

不问归期 提交于 2019-11-30 14:45:28
介绍: 基于GTID的复制是从Mysql5.6开始支持的一种新的复制方式,此方式与传统基于日志的方式存在很大的差异,在原来的基于日志的复制中,从服务器连接到主服务器并告诉主服务器要从哪个二进制日志的偏移量开始执行增量同步,这时我们如果指定的日志偏移量不对,这与可能造成主从数据的不一致,而基于GTID的复制会避免。 在基于GTID的复制中,首先从服务器会告诉主服务器已经在从服务器执行完了哪些事务的GTID值,然后主库会有把所有没有在从库上执行的事务,发送到从库上进行执行,并且使用GTID的复制可以保证同一个事务只在指定的从库上执行一次,这样可以避免由于偏移量的问题造成数据不一致。 什么是GTID,也就是全局事务ID,其保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID。 一个GITD由两部分组成的,分别是source_id 和transaction_id,GTID=source_id:transaction_id,其中source_id就是执行事务的主库的server-uuid值,server-uuid值是在mysql服务首次启动生成的,保存在数据库的数据目录中,在数据目录中有一个auto.conf文件,这个文件保存了server-uuid值(唯一的)。而事务ID则是从1开始自增的序列,表示这个事务是在主库上执行的第几个事务

题解P3745期末考试

送分小仙女□ 提交于 2019-11-30 13:36:22
我太菜了,QAQ Luogu 所有的见代码吧 #include<iostream> #include<cstdio> using namespace std; const int maxn=1e5+10; unsigned long long t[maxn],d[maxn],used[maxn]; unsigned long long c[maxn],up[maxn],n,m,A,B,C; //t[i]->时间上线为i的数目 unsigned long long flag,yes,last,x,ans; inline void prework(){ long long val=0,tot=0; if(flag!=3)//如果不是C大到离谱 for(register int i=1;i<=last;i++) val+=tot*C,tot+=t[i],c[i]=val; //统计C的结果看一看到i这个时间点不满值是多少 val=0;tot=0; for(register int i=1;i<=last;i++) val+=tot,tot+=d[i],used[i]=val; //看如果把时间线强行提到d[i],最多可以进行几次A val=0;tot=0; for(register int i=last;i>=1;i--) val+=tot,tot+=d[i],up[i]=val; /

webrtc的pacing分析

拟墨画扇 提交于 2019-11-30 12:32:39
If you can’t explain it simply, you don’t understand it well enough.-Albert Einstein  根据流量对于时延的敏感性,可以把数据流分为弹性流(elastic traffic)和非弹性流(inelastic traffic)。所谓的时延是否敏感,衡量的标准就是数据流是否能够在时间轴上拉伸。RTP的实时视频流属于非弹性流,而文件传输则是弹性流。  不管什么流,数据流的发送速率应该同网络的分配给相应数据流可用带宽(available bandwidth)相匹配。关于pacing在网络中的作用,参考[1].关于数据流的pacing,有一些相关研究,一个反对[2],一个赞成[3].基于在youtube上的实验结果[5],表明pacing降低丢包率,降低rtt。在BBR里面,就有一个pacing速率sk_pacing_rate。在我看来,网卡向外发送几个数据包,几乎是不占什么时间的,但是pacing的存在,需要将数据包的发送时间"拉伸"。比如在BBR中,瞬时发送一个数据包(1500Byte)后,需要等待一段时间 Δ t = 1500 B y t e p a c i n g _ r a t e \Delta t=\frac{1500Byte}{pacing\_rate} Δ t = p a c i n g _ r a

LeetCode_58. Length of Last Word

女生的网名这么多〃 提交于 2019-11-30 09:39:42
fasfd 58. Length of Last Word Easy Given a string s consists of upper/lower-case alphabets and empty space characters ' ' , return the length of last word in the string. If the last word does not exist, return 0. Note: A word is defined as a character sequence consists of non-space characters only. Example: Input: "Hello World" Output: 5 fdsafadsf 来源: https://www.cnblogs.com/denggelin/p/11576934.html

python xpath

谁说我不能喝 提交于 2019-11-30 06:25:15
article 选取article元素下的所有子元素 /article 选取根元素article html中根元素中根元素一般是html article/a 选取所有属于article的子元素的a元素 //div 选取所有div子元素 article//div 获取article元素下的所有div元素 //@class 选取所有名为class的属性 article/@class 获取article的class属性 /article/div[1] 获取属于article子元素的第一个div元素 /article/div[last()] 获取属于article子元素的最后一个div元素 /article/div[last()-1] 获取属于article子元素的倒数第二个div元素 //div[@lang]获取所有拥有lang属性的div元素 //div[@lang=‘eng’]获取所有lang属性为eng的div元素 /div/* 获取div下的所有子节点 //* 获取所有元素 //div[@*] 获取所有带属性的div元素 来源: https://www.cnblogs.com/paulversion/p/11568060.html

『HGOI 20190917』Lefkaritika 题解 (对角线DP)

大城市里の小女人 提交于 2019-11-30 05:24:31
题目概述 一个$n \times m$的点整点集。其中$q$个点被m被设置为不能访问。 问这个点集中含有多少个不同的正方形,满足不包含任何一个不能访问的点。 对于$50\%$的数据满足$1 \leq n,m \leq 10^4, 1 \leq q \leq 10^3$ 对于另外$50\%$的数据满足$1 \leq n,m \leq 2\times 10^5, 1 \leq q \leq 200$ Solution   我们规定行递增的方向为$x$的正方向,列递增的方向为$y$的正方向。   设$f[i][j]$表示以$(i,j)$为左上角的正方形最大边长。   则$\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m} f[i][j]$就是所求。   我们可以枚举对角线,然后再枚举每个点,分别计算各个标记点对这条对角线的影响。   不妨设当前直线是$y = x + b$。 若点$(i,j)$在直线下方(即顺时针方向),其会限制到点$(j-b,j)$左上方的所有点。 若点$(i,j)$在直线上,其会限制到这个点左上方的所有点。 若点$(i,j)$在直线上方(即逆时针方向),其会限制到点$(i,i+b)$左上方的所有点   注意到,对于每一条对角线,由于标记点个数是$q$个,那么限制的记录点最多也是$q$个。  

2-8 符号配对

霸气de小男生 提交于 2019-11-30 04:26:16
请编写程序检查C语言源程序中下列符号是否配对:/ 与 /、(与)、[与]、{与}。 输入格式: 输入为一个C语言源程序。当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束。程序中需要检查配对的符号不超过100个。 输出格式: 首先,如果所有符号配对正确,则在第一行中输出YES,否则输出NO。然后在第二行中指出第一个不配对的符号:如果缺少左符号,则输出?-右符号;如果缺少右符号,则输出左符号-?。 输入样例1: void test() { int i, A[10]; for (i=0; i<10; i++) /*/ A[i] = i; } . 输出样例1: NO /*-? 输入样例2: void test() { int i, A[10]; for (i=0; i<10; i++) /**/ A[i] = i; }] . 输出样例2: NO ?-] 输入样例3: void test() { int i double A[10]; for (i=0; i<10; i++) /**/ A[i] = 0.1*i; } . 输出样例3: YES 我的答案 提示: 如果最后一个测试用例过不去,可能是 /* 和 */ 的问题. 方法一(运行时处理) // // Created by 小邋遢 on 2019/9/19. // #include <bits/stdc++.h> using

Oracle分析函数

懵懂的女人 提交于 2019-11-30 03:25:16
分析函数 OLAP的系统(即Online Aanalyse Process)一般用于系统决策使用。通常和数据仓库、数据分析、数据挖掘等概念联系在一起。这些系统的特点是数据量大,对实时响应的要求不高或者根本不关注这方面的要求,以查询、统计操作为主。 我们来看看下面的几个典型例子: ①查找上一年度各个销售区域排名前10的员工 ②按区域查找上一年度订单总额占区域订单总额20%以上的客户 ③查找上一年度销售最差的部门所在的区域 ④查找上一年度销售最好和最差的产品 我们看看上面的几个例子就可以感觉到这几个查询和我们日常遇到的查询有些不同,具体有: ①需要对同样的数据进行不同级别的聚合操作 ②需要在表内将多条数据和同一条数据进行多次的比较 ③需要在排序完的结果集上进行额外的过滤操作 分析函数和聚合函数的不同之处是什么? 普通的聚合函数用group by分组,每个分组返回一个统计值,而分析函数采用partition by分组,并且每组每行都可以返回一个统计值。 分析函数的形式 分析函数带有一个 开窗函数over(),包含三个分析子句:分组(partition by), 排序(order by), 窗口(rows) , 他们的使用形式如下: function_name(<argument>,<argument>...) over(<partition_Clause><order by_Clause