我正在下周学习考试,并且在我的书中遇到了一个我无法工作的问题。说假设set<char> s;
现在被声明写一个循环来将所有26个字母插入到s中。Loop将所有26个字母添加到s中使用集合Template Template
我有什么是
for(int i = 0; i < 26; i++)
{
s.insert('A') + i;
}
类似的东西来,这将用于阵列我相信工作,但不是这个模板类。 我知道我不必插入每个字母我只是不知道我可以如何运行字母表。
我正在下周学习考试,并且在我的书中遇到了一个我无法工作的问题。说假设set<char> s;
现在被声明写一个循环来将所有26个字母插入到s中。Loop将所有26个字母添加到s中使用集合Template Template
我有什么是
for(int i = 0; i < 26; i++)
{
s.insert('A') + i;
}
类似的东西来,这将用于阵列我相信工作,但不是这个模板类。 我知道我不必插入每个字母我只是不知道我可以如何运行字母表。
对于便携性,不要以为大写字母具有连续的编码;有代码无法正常工作的字符编码。相反:
const char letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int i = 0; i < 26; ++i)
s.insert(letters[i]);
@songyuanyao - 哎呀,这在C但没有C++。固定。 –
将此:
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;
for (char c = 'A'; c <= 'Z'; ++c)
s.insert(c);
'('A')+ i'''('A'+ i)'。 – bipll
大声笑这是尴尬的...谢谢 –