选择合适的数据结构

Selecting Appropriate Data Structure

本文关键字:数据结构 选择      更新时间:2023-10-16

我们正在阅读一本书,我们必须用它的计数存储这本书的每个字符。

like: "This is to test" out应该是:T4 H1 I2 S3 O1 E1

什么是最合适的数据结构,为什么?这里的逻辑是什么呢?

一个整型数组就可以了。创建一个数组,每个索引是字母表中的一个字母(在扫描图书时,出于某些原因,您可能希望分别存储大写和小写字母)。扫描时,在该字母所在的数组位置增加int值。当你完成后,把它们全部打印出来。

根据您的描述,您只需要一个简单的字符散列来计数。这是因为你只能在一本书中使用有限的一组字符(甚至包括标点、重音和特殊字符)。因此,一个包含几百个条目的散列就足够了。

合适的数据结构应该是std::vector(或者,如果您想要内置的东西,可以是数组)。如果你使用c++ 0x, std::array也可以很好地工作。

逻辑非常简单——读取一个字符(显然转换为大写),然后在数组/向量中增加该项的计数。

选择一种数据结构不仅取决于你想在数据结构中存储什么样的数据,更重要的是取决于你想对数据执行什么样的操作。

看一下这个很好的图表,它可以帮助你决定什么时候使用哪个STL容器。

当然,在您的情况下,std::array(C+0x)或std::vector似乎是一个不错的选择。