我正在制作一个列表向量的程序。它正在跟踪一个单词,以及该单词所在的行号。
例子:
teddy bears are cute
so are you
因此,它将 teddy 存储为第 1 行。 bears 存储为第 1 行。我遇到的唯一问题是重复单词时。它将存储为第 1 行,但我希望程序也存储为第 2 行。我不确定我该怎么做。这是我到目前为止的代码
class index_table
{
public:
index_table() { table.resize(128);}
vector <int> &find1(string &);
private:
class entry
{
public:
string word;
vector <int> line;
};
vector< list <entry> > table;
};
void index_table :: insert( string & key, int value)
{
entry obj;
int c = key[0]; //vector for the table.
obj.word = key; //Storing word
obj.line.push_back(value); //Storing what line it was found on
table[c].push_back(obj); //Stores the word and line number.
}
我怎样才能使我的程序可以在不同的数字行上存储多个单词?我将不得不在我的 table[c] 中搜索一个单词是否相同?我怎样才能正确地做到这一点?