【发布时间】:2023-08-15 09:11:01
【问题描述】:
我正在尝试编写一个匹配字符串是否存在于字典中的 C++ 函数。它可以是部分字符串或完整字符串。所以我把每一行都读成了一个 trie
trie< std::string, int > dict;
dict.insert(make_pair(line,i++));
// when i search for a string it always returns invalid.
if(dict.find("AA")!=dict.end())
cout<<valid<<endl;
else
cout<<invalid<<endl;
有人可以帮我解决这个问题吗?我添加了用于阅读字典中的单词的代码。
if(myfile.is_open())
{
int i=0;
string line;
cout<<dict.size()<<endl;
while(!myfile.eof())
{
getline(myfile,line);
dict.insert(make_pair(line,i++));
}
}
【问题讨论】:
-
如果不知道必要的声明和变量,这个问题是不可能合理回答的
-
@aaa 我使用 getline 读取一行,我检查了 dict 的大小,发现它是 179000。使用 dict.find 后,我使用它检查它返回的内容 = dict.find(" AA"); (*it).second 的值返回 23880300
-
家庭作业?无论如何,这个问题是无法回答的——你应该清楚地说明你想要什么。在我看来,你已经做了你想做的事。
-
你使用的是什么实现的 trie。
-
@jpalecek。不,这不是在家工作。没有人会要求在家庭作业中使用 GNU trie