所有的元素在插入后应该在数组中有固定的位置,直到我明确地从那里删除它们。是否有这样的提升或任何地方?谢谢动态矢量状容器,但其元素保存其索引?
0
A
回答
3
使用或map<int, T>
。
或者,使用vector<
optional<T>
>
,并设置插槽删除对none_t
,而不是实际删除它。
1
而不是“删除”一个元素,您希望将其值设置为null(或其他“无值”等效值)。然后,根据需要,一切都保持不变。
0
有趣。你的目标是揭示一个从整数到SLOTS的映射,那些SLOTS可能包含一个值?或者,您的目标是保留每个元素的底层地址以及内部数组本身的底层地址?大概你有一个理由,你需要元素的位置,或者在元素被“移除”之后,从整数键到元素的映射。这是什么原因?
上面提到的map<>
或vector<>
实现可能无法工作,因为remove
,erase
,find
等操作将删除,重新排列,或检查您认为是“删除”的整数。
不幸的是,我认为这可能是一种情况,您需要使用围绕vector<optional<T> >
或vector<T*>
的包装材料来制作自己的包装,具体取决于您如何定义remove
。
相关问题
- 1. 将元素索引保存到变量
- 2. 根据其它矢量元素位置
- 3. 如何添加动态表单元素但保留其值(JS)
- 4. 如何在单击其他元素时使元素保持活动状态?
- 5. R - 检查矢量对其他矢量的元素
- 6. Activity中的静态变量是否可以保存其状态?
- 7. 如何过滤相对于其他元素的矢量元素?
- 8. 扩展std :: vector以移动其他矢量类型的元素
- 9. 保留影响其他元素的单选按钮状态
- 10. 保存和调用元素的状态
- 11. 其文本查找元素索引
- 12. 保存页面状态并将其恢复到相同状态
- 13. 保存Android活动状态和内容
- 14. 保存一个容器的状态(LinearLayout)
- 15. List.js发现元素但仍然保留其他元素
- 16. 元素放在其父容器外
- 17. Git瓷器命令将单个文件恢复到其HEAD状态,但保持其上演状态?
- 18. 使浮动元素保持其位置
- 19. 其中超过1个元素存储在索引中
- 20. 创建一个数组,其中每个元素存储其索引
- 21. Android RecyclerView在向后滚动时未保存其状态
- 22. 其余的http代码保存为非活动状态
- 23. 如何使Android活动不保存其状态?
- 24. 动态调整元素的大小,但保持其背景的比例
- 25. 保存搜索状态
- 26. 获取元素的索引数组包含其他元素
- 27. 向量(或其他动态容器)内的类变量的C++ const引用
- 28. 保存表单元素属性XML(保存控制状态)
- 29. 将Python搜索结果保存到变量中并使用其元素
- 30. 保存矢量
“固定位置”是什么意思?除非您从矢量的开始或中间插入或移除元素,否则其元素的索引不会更改。 – 2010-06-12 17:30:16
手头有什么问题? – GManNickG 2010-06-12 17:33:35
@詹姆斯麦克奈利斯:我的意思是说,当我插入或删除_any_元素时,这不应该影响其他人的位置。例如,如果我有一个有500个元素的容器,并且我首先移除了所有第一个499,那么最后应该是第500个,并且容器的大小不应该改变。 – szx 2010-06-12 17:35:38