2011-11-17 102 views
1

所以,我有一個文本文件(data.txt),它是一個故事,所以只是句子之後的句子,並且相當長。我想要做的是從文件中取出每個單詞並將其存儲在某種類型的數據結構中。作爲用戶輸入,我將得到一個單詞作爲輸入,然後我需要找到該輸入單詞中最接近的10個單詞(在data.txt中),使用一個函數找出2個字符串之間的Levenshtein距離(我認爲功能雖然)。所以我想我會使用getline()使用「」作爲分隔符來單獨存儲單詞。但我不知道我應該如何儲存這些詞彙,以便我可以輕鬆訪問它們。還有一個事實是,我不知道data.txt文件中有多少單詞。從文件讀取到C++的數據結構

我可能已經解釋了這個非常抱歉,我會回答你有任何問題,但澄清。

回答

2

在C++中,你可以存儲詞語串的向量:

#include <vector> 
#include <string> 

//.... 

std::vector<std::string> wordsArray; 
// read word 
wordsArray.push_back(oneWord); 
+0

因此,如果我將所有單詞存儲到像使用push_back()這樣的字符串向量中,我如何引用向量中的一個元素? like wordsArray [0]?那會是矢量中的第一個字符串嗎? –

+1

@PatrickJohnston正好。檢查矢量的參考:http://www.cplusplus.com/reference/stl/vector/ –

+0

thx球員,欣賞它:D –

1

你需要能夠將數據結構「遏制」你讀的字符串。 標準庫提供了一些像 「容器」 類:

  • 矢量
  • 雙端隊列
  • 列表
  • 設置
  • 地圖

給的支票http://en.cppreference.com/w/cpp到容器庫,並找到更適合您需求的庫。 正確的答案不僅取決於你必須「存儲它們」的事實,而且還取決於事後必須處理的事情。