在我的程序中,我有一串都是数字的caracters,我想将它们用作索引以从向量中获取值。但是这段代码的输出是一个 15 位数字,所以不是 1,它是vect[0],即我认为它会输出的内容。
char c = '0';
vector<int> vect = {1};
int i = (int)c;
cout<<vect[i];
我已经看到从caracter转换为整数是用
int i=(int)c;
所以我真的不明白这不适合索引的类型。
首先,使用 C 样式强制转换 (int i = (int) c;
) 是不习惯的,而是使用静态强制转换 (int i = static_cast<int>(c);
)。但事实上,正如其他人提到的,char
会自动提升为int
。
则字符"0"与索引 0 不同。看一看:
int i = c;
std::cout << i << std:endl;
如果要使用字符"0"作为索引 0,请使用:
int i = c - '0';