这是加速C ++中的问题(3-3)。
我是C ++的新手。我已经考虑了很长时间了,但是,我无法弄明白。 有人会为我解决这个问题吗? 请详细解释,你知道我不擅长编程。告诉我你使用的变量的含义。
答案 0 :(得分:6)
最好的数据结构类似于std::map<std::string,unsigned>
,但在第7章之前不会遇到地图。
以下是基于第3章内容的一些提示:
std::vector<std::string>
std::sort
可以与std::vector<std::string>
一起使用,您可以检查两个字符串是否与s1==s2
相同,就像整数一样。std::cin >> s
是std::cin
,s
会将s
中的字词读入std::string
。答案 1 :(得分:1)
为了提供最佳的学习体验,我不会提供可用的代码。 这是一个练习。你必须自己动手去学习。
这是使用一种在访问不存在的密钥时创建其值类型的映射的完美方案。幸运的是,C ++在其标准库中有这样的映射:std::map<key_type,value_type>
正是您所需要的。
所以这是拼图:
>>
0
(零)玩得开心吧!
答案 2 :(得分:0)
这是我的提示。 std::map
将成为你的朋友。
答案 3 :(得分:0)
嗯,您需要一种从输入流中获取单个单词的方法(可能类似于“输入流”方法应用于“标准输入流”)以及将这些字符串和计数存储在某种“集合”。
我天生的家庭作业冷嘲热讽和对生活的普遍冷漠使我无法在此刻添加更多细节: - )
我使用的任何变量的含义都是不言而喻的,因为我倾向于使用objectsRemaining
或hasBeenOpened
之类的东西。
答案 4 :(得分:0)
这是一个你可以使用的算法,尝试编写一些东西并在这里给你结果。然后人们可以帮助你走得更远。
向下扫描收集每个字母的字符串,直到到达字边界(比如空格或。或等)。 取出该单词并将其与您已找到的单词进行比较,如果已找到,则将该单词添加到该单词的计数中。如果不是,则将该单词添加到计数为1的单词列表中。
继续按下