stl deque源码学习笔记

1.deque是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并且在一个映射结构中保存对这些块及其顺序的跟踪。向deque 两端添加或删除元素的开销很小。它不需要重新分配空...

2012-09-04 09:24:56

阅读数 17

评论数 0

stl list源码学习笔记

1.list中有一个unique函数,这个函数容易给人造成一种错觉:直接调用它就可以移除list中的重复元素。其实不然,unique函数实现如下: [code="c++"] template void list::unique() { ...

2012-08-30 14:51:45

阅读数 17

评论数 0

stl vector源码学习笔记

1.vector中的size()方法是常数量级的,其中 0 == size()和empty()是等价的; [code="c++"] size_type size() const { return size_type(end() - begin(...

2012-08-29 17:13:49

阅读数 23

评论数 0

如何判断文本是否是UTF8编码

UTF8格式的文本开头的三个字节是-17、-69和-65,主要读取文件或流的前三个字节,然后比对即可: [code="java"] /** * @param byte0 the first byte of file(or stream) * @...

2012-08-27 16:44:10

阅读数 78

评论数 0

边界检查函数checkBounds

今天在看java.nio.Buffer的源码时,看到这样一个函数: [code="java"] static void checkBounds(int off, int len, int size) { if ((off | le...

2012-08-27 14:12:36

阅读数 128

评论数 0

BufferedInputStream中的fill函数

BufferedInputStream内用有一个很重要的private函数fill(),这个函数的原型如下: [code="java"] private void fill() throws IOException { ...

2012-08-24 16:59:44

阅读数 56

评论数 0

FutureTask进入完成状态,会永远停止在这个状态

      今天在使用ScheduledExecutorService的时候,发现scheduleWithFixedDelay和scheduleAtFixedRate的参数都是Runnable,于是想到使用FutureTask封装一下:FutureTask<String&am...

2012-08-23 13:56:26

阅读数 149

评论数 0

n+1个范围是0~n的数字,找出所有重复的数字,O(n)基础上不用额外空间

n+1个范围是0~n的数字,找出所有重复的数字,O(n)基础上不用额外空间。 算法思想: 使用数组的值对应数组的下标,出现多对一的则说明重复。 算法: 遍历数组,每次访问前判断数组是否访问过(访问过的会被置为负数); 如果没访问过,则以当前数组的值为数...

2012-08-21 17:08:10

阅读数 153

评论数 0

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