选择适当的数据结构

时间:2011-07-11 16:23:42

标签: c++ data-structures

我们正在读一本书,我们必须存储本书的每一个字符。

喜欢:“这是测试”应该是:T4 H1 I2 S3 O1 E1

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

4 个答案:

答案 0 :(得分:3)

一组int就可以了。创建一个数组,每个索引都是一个字母表的字母(你可能希望在扫描书籍时分别存储大写和小写的原因)。扫描时,在该字母的数组位置增加int。完成后,将它们全部打印出来。

答案 1 :(得分:1)

根据您的描述,您只需要一个简单的字符哈希值。这是因为您只能在书中出现一组有限的字符(甚至可以计算标点符号,重音符号和特殊字符)。所以一个包含几百个条目的哈希就足够了。

答案 2 :(得分:1)

适当的数据结构是std::vector(或者,如果你想要一些内置的数组)。如果您使用的是C ++ 0x,那么std::array也可以很好地工作。

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

答案 3 :(得分:1)

选择数据结构的选择不仅取决于您希望在数据结构中存储哪种数据,更重要的是取决于您希望对数据执行何种操作。

查看 this 优秀图表,这有助于决定何时使用哪个STL容器。

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