我得到了一份我需要帮助的作业。我试图将矢量初始化为
vector<char> symbol(26) = {'!', '^', '&', '*', '@', '(', ')', '-', '#', '_', '=', '+', '[', '{', '$', ']', '}', ';', ':', ',', '%', '<', '.', '>', '/', '?'};
但我一直收到错误。什么应该是正确的语法,可以像
一样运作symbol.at(0) = '!';
symbol.at(1) = '^';
symbol.at(2) = '&';
.........
答案 0 :(得分:4)
vector<char> symbol(26);
这声明vector<char>
名为symbol
并使用构造函数参数26
构造它以创建26 char
s。
vector<char> symbol = { ... };
这声明vector<char>
名为symbol
,并使用元素...
对其进行初始化。
您不能也不需要将这两种方法混合在一起。
您似乎可能正在考虑数组声明(例如char symbol[26] = { ... }
),但数组不是向量,向量不是数组......构造函数参数列表不是数组维度。
删除(26)
。
您最好删除=
,因为您正在使用&#34; new&#34; C ++ 11 list-initialisation。
vector<char> symbol{'!', '^', '&', '*', '@', ... };