C++ 在 gatherTokens 函数中设置的大小大于预期

问题描述 投票:0回答:0

我正在开发一个 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 函数中添加了一些调试输出,以便在将每个标记添加到集合中时打印出每个标记,我可以看到没有重复项。然而,集合的大小仍然比预期的要大。

任何人都可以帮我找出可能导致此问题的原因吗?预先感谢您的帮助。

c++ set size
© www.soinside.com 2019 - 2024. All rights reserved.