1. map : C++的STL中map是使用树来做查找算法; 时间复杂度:O(log2N)2.hash_map : 使用hash表来排列配对,hash表是使用关键字来计算表位置; 时间复杂度:O(1), 最坏的时间复杂度:O(n)总体来说:hash_map 比 map 查找速度快,而且查找速度.....
分类:
其他好文 时间:
2014-06-28 23:22:16
阅读次数:
293
在STL中,排序是个很重要的话题。1.algorithm 里的sort()只接收RandomAccessIterator用于像vector,dequeue的排序2.像set,map,这种关联式容器,本身就由RBTree维护了有序,只要遍历一遍就行了。3.而list比较特殊一点,由于只有Bidirec...
分类:
其他好文 时间:
2014-06-28 22:09:39
阅读次数:
209
#include#includeusingnamespacestd;intmain(){vectorv(3);v[0]=2;v[1]=7;v[2]=9;v.insert(v.begin(),8);//在最前面插入新元素。v.insert(v.begin()+2,1);//在迭代器中第二个元素前插入新...
分类:
其他好文 时间:
2014-06-28 20:28:27
阅读次数:
144
for(;iter!=mapStudent.end();){ if((iter->second)>=aa) { //满足删除条件,删除当前结点,并指向下面一个结点 mapStudent.erase(iter++); } else { //条件不满足,指向下面一个结点 iter++; }}这种删除方式...
分类:
其他好文 时间:
2014-06-18 13:47:29
阅读次数:
207
【序言】在大家怀疑的眼光下,我做了一个中午和半个下午、调了一个晚上的题目总算A了!
【原题】
消棋子是一个有趣的游戏。游戏在一个r * c的棋盘上进行。棋盘的每个格
子,要么是空,要么是一种颜色的棋子。同一种颜色的棋子恰好有两个。每一轮,
玩家可以选择一个空格子(x, y),并选择上下左右四个方向中的两个方向,如果
在这两个方向上均存在有棋子的格子,而且沿着这两个方向上第一个遇到的棋子
...
分类:
其他好文 时间:
2014-06-18 06:08:20
阅读次数:
233
背景
看了几个内存池的设计,如python,STL,基本上对内存的管理有两种结构:
1.block,即内存的一个块,一般和内存页(pagesize)大小相关。
2.内存分片,即在该内存块上分配要使用的内存空间。
例如python的pyIntObject中使用到的缓冲池的实现: http://blog.csdn.net/ordeder/article/details/25343633...
分类:
数据库 时间:
2014-06-18 00:49:46
阅读次数:
416
模仿STL中list,实现了其大部分功能。list可以高效地利用内存资源,常数时间的插入删除操作。并且,list除了erase外,不怎么存在迭代器失效的现象。#include#include#includeusing namespace std;templatestruct _List_node{ ...
分类:
编程语言 时间:
2014-06-17 23:32:51
阅读次数:
468
复制容器(container)的元素至另一个容器本文地址: http://blog.csdn.net/caroline_wendyC++复制容器(container)元素, 可以使用标准库(STL)的copy()和copy_n()函数.函数样式: OutputIterator copy (InputIterator first, InputIterator last, OutputIterator...
分类:
编程语言 时间:
2014-06-17 16:06:13
阅读次数:
333
1.PyDictObject对象 --> C++ STL中的map是基于RB-tree的,搜索时间复杂度是O(logN)
PyDictObject采用了hash表,时间复杂度是O(1)
typedef struct{
Py_ssize_t me_hash; //me_key的hash值,避免每次查询都要重新计算一遍hash值
PyObject *me_key;
PyObject *me_value;
}PyDictEntry;
将(key,value)对称为entry,它可以在3种状态...
分类:
编程语言 时间:
2014-06-16 21:22:45
阅读次数:
272
一、简介我们在学习C++的过程中,学到STL是必然的,那么STL的入门就是vector了。vector是同一种类型的对象的集合,vector很像数组,空间是连续的,能非常高效和方便的访问单个元素,但是它支持动态增加和压缩数据,所以这是矛盾的,这个问题,我们会在后期的STL源码的分析中来..
分类:
编程语言 时间:
2014-06-16 17:20:17
阅读次数:
254