2017-08-26 96 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

回答

相關問題