哪种数据结构最适合这个
Which data structure would be best for this?
本文关键字:数据结构 更新时间:2023-10-16
对于我的游戏,当对象进入传感器时,我需要将其添加到列表中,当对象离开传感器时,它需要从列表中删除。我还需要快速找到那个对象。
所以:
我需要它做:快速添加,快速删除,快速查找。
什么类型的数据结构最适合这种情况,在任何给定的时间,该结构将有大约10个对象。
谢谢
对于10个对象(std::vector
, deque
或set
),没有人可以在分析之前判断哪个对象表现更好。
如果你不知道该用什么,也许你会发现std::set
有一个更好的语法来查找元素。这就是我在这种情况下要使用的,因为我不想在可以直接写s.find(sensor)
的地方写std::find(v.begin(), v.end(), sensor)
。
作为一般建议,不要使用std::list
。在c++中使用链表需要一个令人信服的理由(常数时间拼接是一个,没有迭代器无效是另一个)。其他数据结构在大多数操作中表现更好(拼接除外)。在这里,我不认为使用list
而不是eg有任何意义。set
。
我建议使用std::list
,因为它非常适合插入和删除元素
快速添加,快速删除和快速查找,你不需要太多做你!鉴于你所说的,我会说是链表,但这也取决于添加,删除和查找的频率。如果你发现的东西比你添加或删除的东西要频繁得多,那就改变吧。
唯一的方法就是尝试一些不同的选择并计时。
我认为链表是最好的。考虑到较小的大小,移动指针的行为不会影响性能。
相关文章:
- 链表,反向函数,数据结构
- 如何使用set实现无序数据结构?
- 我们可以将数据永久保存为数据结构吗?
- C++中的可变长度数组/数据结构
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- 通过 NIF 从C++返回自定义数据结构
- 编译器上的策略数据结构不起作用
- 尝试构建"lock-free"数据结构C++
- 设计将引用元素移动到开头的数据结构.C++
- 在学习数据结构之前对STL有一个了解是好的吗?
- 如何解析表示树状数据结构的字符串
- 我对数据结构、双向链表有一些问题
- googletest:测试太大的数据结构
- C++中deque数据结构的大O是什么?
- 我可以使用哪种数据结构来处理这种方式
- 将文本文件解析为树状数据结构
- C++ 中具有 O(1) 搜索时间复杂度的数据结构
- 哪些存储了不完整类型的 STL 数据结构可以用作类成员?
- C++,您能否设计一种数据结构,将指针保存在连续内存中并且不会使它们失效?
- 带参数的数据结构的全局声明