2017-05-04 61 views
-1

我正在下週學習考試,並且在我的書中遇到了一個我無法工作的問題。說假設set<char> s;現在被聲明寫一個循環來將所有26個字母插入到s中。Loop將所有26個字母添加到s中使用集合Template Template

我有什麼是

for(int i = 0; i < 26; i++) 
{ 
    s.insert('A') + i; 
} 

類似的東西來,這將用於陣列我相信工作,但不是這個模板類。 我知道我不必插入每個字母我只是不知道我可以如何運行字母表。

+3

'('A')+ i'''('A'+ i)'。 – bipll

+1

大聲笑這是尷尬的...謝謝 –

回答

0

對於便攜性,不要以爲大寫字母具有連續的編碼;有代碼無法正常工作的字符編碼。相反:

const char letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
for (int i = 0; i < 26; ++i) 
    s.insert(letters[i]); 
+0

@songyuanyao - 哎呀,這在C但沒有C++。固定。 –

0

將此:

s.insert('A') + i; 

s.insert('A' + i); 

s.insert(65 + i); // 'A' value in ASCII table is 65 

或回答user31264

for (char c = 'A'; c <= 'Z'; ++c) 
    s.insert(c); 

您可以通過打印使用的所有元素進行測試:

for (auto e:s) 
    cout << e; 
1
for (char c = 'A'; c <= 'Z'; ++c) 
    s.insert(c); 
相關問題