我正在开发一个 C++ 程序,其中包含一个 gatherTokens 函数,该函数应该从文本字符串中提取一组唯一标记。但是,我遇到了一个问题,即结果集的大小大于预期,即使我正在删除重复项。 这是我的 gatherTokens 函数代码:
Set<string> gatherTokens(string text) {
Set<string> tokens;
Vector<string> splitTokens = stringSplit(text, " ");
for (string splitToken : splitTokens) {
string cleanedToken = cleanToken(splitToken);
if (!tokens.contains(cleanedToken)) {
tokens.add(cleanedToken);
}
}
return tokens;
}
这是我的 cleanToken 函数代码:
string cleanToken(string s) {
string result = "";
for (int i = 0; i < s.length(); i++) {
s[i] = tolower(s[i]);
if (isalnum(s[i])) {
result += charToString(s[i]);
}
}
return result;
}
我还在 gatherTokens 函数中添加了一些调试输出,以便在将每个标记添加到集合中时打印出每个标记,我可以看到没有重复项。然而,集合的大小仍然比预期的要大。
任何人都可以帮我找出可能导致此问题的原因吗?预先感谢您的帮助。