-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]);
它不工作。
如果你想存储唯一字符,那么你应该使用一组字符。 – tkausl
这是我做的,不是?设置为字符串类型。 –
您已将单个字符串插入集合中。如果要存储单个元素,则需要将“s”分解为单个字母或单词。 – Robinson