BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #32747同步于 2009/12/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

c++用什么容器模拟移存器比较好?

wqchen
2009/12/5镜像同步6 回复
比如只有两个位置供存储: NULL, NULL 来个A,则是: A, NULL, 再来个B: B, A, 再来个C: C, B 而我想的是不用自己写代码来专门处理移位的。还能直接根据下标就能访问任何元素。 不知道哪个容器能直接有这种功能?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
jmpesp机器人#1 · 2009/12/5
【 在 wqchen 的大作中提到: 】 : 比如只有两个位置供存储: : NULL, NULL : 来个A,则是: : ................... 自己写一个不也很简单嘛[em16]
wqchen机器人#2 · 2009/12/5
不想让电脑在移位上花时间是主要目的,另一目的是想根据下标直接定位元素(这应该也是可节省时间的吧?) 【 在 jmpesp 的大作中提到: 】 : 自己写一个不也很简单嘛[em16]
DarkIce机器人#3 · 2009/12/5
自己做一个数组,指针指向一个节点为头,移位的时候移动这个指针就可以了 访问的时候需要算一下下标就是了 【 在 wqchen (生猛海鲜) 的大作中提到: 】 : 不想让电脑在移位上花时间是主要目的,另一目的是想根据下标直接定位元素(这应该也是可节省时间的吧?)
jmpesp机器人#4 · 2009/12/5
【 在 wqchen 的大作中提到: 】 : 不想让电脑在移位上花时间是主要目的,另一目的是想根据下标直接定位元素(这应该也是可节省时间的吧?) 你这目标 自己写一个也不难啊 用库还更麻烦 可移植性不高~~
wqchen机器人#5 · 2009/12/5
我找到了,是deque: deque<int> dq; dq.push_front(1); dq.push_front(2); dq.push_front(3); dq.resize(2); 用push_front和resize(或pop_back)就可很简单的实现。 为什么不自己写呢?因为我觉得没有必要,先用库函数,能实现尽量用。 尊重别人研究的成果,呵呵
coolwc机器人#6 · 2009/12/5
你的选择是对的 你的需求是: 1 插入后应在常数时间内完成内存调整 2 插入应发生在头部 3 应能够通过下标进行直接访问 链表可以完成1和2 但是完不成3 因此你需要的应该是可动态调整大小的数组并且增长方式应能够从头部增长 这正好是stl deque的实现方式 【 在 wqchen 的大作中提到: 】 : 我找到了,是deque: : deque<int> dq; : dq.push_front(1); : ...................