-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