Set不会删除重复项

时间:2017-09-29 22:36:40

标签: c++ set

我无法将单词文件放入集合中。我可以读取文件,然后单词进入集合,但集合不会丢弃重复的单词。以下是我认为导致问题的代码片段。

using namespace std;

while(readText >> line){

     set<string> wordSet;
     wordSet.insert(line);


     for (std::set<std::string>::iterator i = wordSet.begin(); i != wordSet.end(); i++)
        {
        cout << *i << " ";
        }

  }

示例文件是这样的     1     2     2     3     4     五     5

并且输出完全相同

1 个答案:

答案 0 :(得分:4)

如评论中所述,您未正确使用std::set。您需要在for循环之外移动它和while循环:

using namespace std;

set<string> wordSet;

while(readText >> line) {
    wordSet.insert(line);
}

for (set<string>::iterator i = wordSet.begin(); i != wordSet.end(); i++) {
    cout << *i << " ";
}