2011-11-17 104 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到容器库,并找到更适合您需求的库。 正确的答案不仅取决于你必须“存储它们”的事实,而且还取决于事后必须处理的事情。