【发布时间】:2011-04-05 12:47:24
【问题描述】:
我正在考虑在内存中存储大量字符串的数据结构。字符串将插入程序的开头,并且在程序运行时不会添加或删除。关键点是搜索过程应该尽可能快。节省内存并不重要。我倾向于使用标准库中的标准结构 hash_set,它允许以大约恒定的时间搜索结构中的元素。但不能保证这段时间会很短。有人会提出更好的标准决定吗?
非常感谢!
【问题讨论】:
-
你想要一个数组还是一个关联容器? “Array”和“Hash_Set”执行非常不同的功能。
-
search elements in the structure with about constant time. But it's not guaranteed that this time will be short。我认为您不了解恒定时间的含义。除非我们更多地了解字符串是什么、它们有多大、它们是如何存储的、它们是如何被访问的,否则恒定时间是最好的选择 -
But it's not guaranteed that this time will be short。除非您正在构建一个 RT 系统,否则它可能会足够短。 -
@Falmarri:准确地说,恒定时间是无限的。它保证的唯一属性是,无论 N 有多大,执行都需要相同的时间。在实践中,K 通常很小。
-
@Merlyn:是的。但这就是为什么我添加了该段的其余部分。不了解细节就无法变得更好
标签: c++ string data-structures std