![](/img/trans.png)
[英]3-3. Write a program to count how many times each distinct word appears in its input
[英]Write a program to count how many times each distinct word appears in its input
這是加速C ++中的一個問題(3-3)。
我是C ++的新手。 我已經考慮了很長時間,但是我無法弄清楚。 誰能為我解決這個問題? 請詳細解釋一下,您知道我不太擅長編程。 告訴我您使用的變量的含義。
最好的數據結構類似於std::map<std::string,unsigned>
,但是直到第7章您都不會遇到映射。
以下是基於第3章內容的一些提示:
std::vector<std::string>
std::sort
可與std::vector<std::string>
,並且可以檢查兩個字符串是否都相同,並且s1==s2
就像整數一樣。 s
是std::string
,則std::cin >> s
從std::cin
讀入s
。 為了提供最佳的學習體驗,我將不會提供可粘貼的代碼。 那是練習。 您必須自己做才能盡可能多地學習。
這是采用一種映射的完美方案,該映射可在訪問不存在的鍵時創建其值類型。 幸運的是,C ++在其標准庫中有一個這樣的映射: std::map<key_type,value_type>
正是您所需要的。
所以這是拼圖碎片:
>>
從單詞到單詞將單詞逐字讀入字符串 0
(零) 祝您玩得開心!
這是我的提示。 std::map
將成為您的朋友。
好吧,您需要一種從輸入流中獲取單個單詞的方法(例如,類似於“標准輸入流”中所應用的“輸入流”方法),以及一種將這些字符串和計數存儲在某種“集合”中的方法。
我天生的作業冷嘲熱諷和對生活的普遍冷漠使我此刻無法添加更多細節:-)
我使用的任何變量的含義都是不言而喻的,因為我傾向於使用諸如objectsRemaining
或hasBeenOpened
類的東西。
這是一個您可以使用的算法,嘗試對某些內容進行編碼並將結果放在此處。 人們可以幫助您進一步發展。
向下掃描收集每個字母的字符串,直到到達單詞邊界(例如空格或。或等)。 將該單詞與您已經找到的單詞進行比較,如果已經找到,則將該單詞的計數加一。 如果不是,則將該單詞添加到找到的單詞列表中(計數為1)。
繼續進行下去
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.