2017-08-26 59 views
-1

如果std :: set只存储唯一值,那么为什么它不适用于下面的代码?为什么我的std :: set没有存储唯一值?

#include <bits/stdc++.h> 
using namespace std; 

int main() { 

string s; 
set <string> s1; 
set <string>::iterator it; 
getline(cin, s); 
s1.insert(s); 

for(it = s1.begin(); it != s1.end(); it++) 
    cout<<*it; 

return 0; 
} 

输入:The quick brown fox jumps over the lazy dog

输出:The quick brown fox jumps over the lazy dog

是否有任何其他的方式来存储所有的独特的字母/元素?我们可以存储空间吗?

编辑:正如罗宾逊指出,我应该打破和存储字符串s,但是当我这样做迭代通过字符串s并插入到集s1时,它显示错误。

for(int i = 0; i < s.length(); i++) 
    s1.insert(s[i]); 

它不工作。

+0

如果你想存储唯一字符,那么你应该使用一组字符。 – tkausl

+0

这是我做的,不是?设置为字符串类型。 –

+2

您已将单个字符串插入集合中。如果要存储单个元素,则需要将“s”分解为单个字母或单词。 – Robinson

回答

相关问题