std::shared_ptr 是通过指针保持对象共享所有权的智能指针。多个 shared_ptr 对象可占有同一对象大概实现了一下,主要实现原理为,共享指针内部持有堆资源的指针以及引用计数的指针,通过对这两个指针的维护,达到多个共享对象对同一资源的控制 实现主要分为三个文件。share_ptr.h ...
分类:
其他好文 时间:
2018-05-13 01:08:37
阅读次数:
168
前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下 ...
分类:
其他好文 时间:
2018-05-12 11:17:49
阅读次数:
183
Netty 中使用 ByteBuf 代替 Java NIO 提供的 ByteBuffer 作为字节的容器。 一、索引 ByteBuf 提供两个指针变量支持读和写操作,读操作使用 readerIndex,写操作使用 writerIndex。如下图: 二、索引管理 三、查询操作 可以使用以 ByteBu ...
分类:
Web程序 时间:
2018-05-10 18:12:15
阅读次数:
1196
一、指针的定义和初始化 指针中* 是间接运算符,可以利用指针访问变量。 二、指针运算 指针与指针相减表示两个指针间可以存储的变量的个数。 指针加减某个整数,相当于将指针移动整数个变量大小。 double 占8个字节,0x30-0x28=16-8=8 正好是加整数1,位置移动了8个字节。 三、指向数组 ...
分类:
编程语言 时间:
2018-05-08 20:56:34
阅读次数:
169
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) /* struct RandomListNode { int label; ...
分类:
其他好文 时间:
2018-05-05 15:58:46
阅读次数:
152
题目: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S, 输出两个数的乘积最小的。 思路: 数列满足递增,设两个头尾两个指针i和j, 若ai + aj == sum,就是答案(相差越远乘积越小) 若ai + aj sum,aj肯定不是答案之一( ...
分类:
其他好文 时间:
2018-05-01 15:23:04
阅读次数:
134
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 笔记 1. 在每个节点后插入一个本节点的复制 2. 将每个节点的rando ...
分类:
其他好文 时间:
2018-04-28 14:00:09
阅读次数:
93
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 一种方法是先计算链表的长度N,然后定位到第(N-n)个节点,删除节点(N-n+1)也即(倒数第n个节点) 代码如下: 第二种方法是,使用两个指针,首先将第一个指针置于第二个的后n+1个节点处。再同时移动两个指针,当第一个指向 ...
分类:
其他好文 时间:
2018-04-26 01:05:44
阅读次数:
244
数据结构栈和队列的基本算法实现 限定性线性表——栈 栈的定义 栈作为一种限定性的线性表,是将线性表的插入和删除操作限制为仅在表的一端进行。 基本算法演示 运行演示 算法小结 所有的算法已经给出,值得注意的是在 算法中 定义了两个指针,以为一个被free掉后就无法进行操作了,对于 函数就没有这个问题, ...
分类:
编程语言 时间:
2018-04-19 18:18:41
阅读次数:
265
Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpo ...
分类:
其他好文 时间:
2018-04-11 19:57:44
阅读次数:
222