map和list、vector有何异同?
如题 问题点数:10、回复次数:8Top
1 楼kobefly(科比--网络学习中)回复于 2005-04-04 13:54:26 得分 0
这个
不是一句2句说的完的
Top
2 楼jackael008(jack)回复于 2005-04-04 13:55:32 得分 0
关注Top
3 楼whyglinux(山青水秀)回复于 2005-04-04 13:55:35 得分 3
相同点是都是容器类。不同之处在于list、vector是顺序容器,可以作为目的容器使用;map是联合容器,不能作为目的容器使用。Top
4 楼tohell(游游)回复于 2005-04-04 16:43:46 得分 0
是不是 map 配合 list 使用比较好呢?Top
5 楼steedhorse(晨星)回复于 2005-04-04 16:46:41 得分 0
map是哈希表;
list是链式存储的线性表,也叫“链表”;
vector是可动态改变大小的顺序存储的线性表,也叫“动态数组”。
详见《数据结构》,这是基本概念。Top
6 楼vampire_11(青角吹寒)回复于 2005-04-04 17:07:59 得分 3
vector和数组差不多,就是大小是变量,在内存是连续存储;
list是队列,每个对象都有前向指针和后象指针,在内存里也不一定是连续存储;
map也是使用指针……不说了,看看者三个类定义的属性就知了Top
7 楼xqb0010()回复于 2005-04-04 17:09:44 得分 4
vector是序列容器,内存分配时占用连续空间,因为采用的是随机迭代器,所以得到某一位置的值非常快
但是插入和删除比较慢,因为涉及到大块内存的赋值粘贴.
list也是容器,但是内存分配是零散的,采用的是双向迭代器,得到某一位置的值并不快,但插入和删除
效率很高.
map底层采用的是树型结构,多数使用平衡二叉树实现,查找某一值是常数时间,遍历起来效果也不错,
只是每次插入值的时候,会重新构成底层的平衡二叉树,效率有一定影响.
Top
8 楼xjp6688(大平/要做必须最好)回复于 2005-04-04 17:31:47 得分 0
找找STL看看Top




