顺序容器与关联容器的不同

想要理解关联容器与顺序容器的不同,最关键的是理解其基础的数据结构,这样就很自然的理解它所表现出来的性质。
两类容器的根本差别在于,顺序容器中的元素是“顺序”存储的(链表容器中的元素虽然不是在内存中“连续”存储的,但仍然是按“顺序”存储的)。理解顺序的关键,是理解容器支持的操作形式以及效率。
对vector这样的顺序容器,元素在其中按顺序存储,每个元素都有唯一对应的位置编号,所有的操作都是按编号(位置)进行的。
例如,获取元素(头、尾、用下标获取任意位置)、插入删除元素(头、尾、任意位置)、遍历元素(按元素位置顺序逐一访问)。底层数据结构是数组、链表,简单但已能保证上述操作的高效。而对于依赖值得元素访问,例如查找(搜索)给定值(find),在这种数据结构上的实现是要通过遍历完成,效率不佳。
而map这种关联容器,就是为了高效实现“按值访问元素”这类操作而设计的。为了达到这一目的,容器中的元素是按关键字存储的,关键字值与元素数据建立对应关系,这就是“关联”的含义。底层数据结构是红黑树、哈希表等,可高效实现按关键字值查找、添加、删除元素等操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值