将转换字符键入 int 以用作向量C++的索引



在我的程序中,我有一串都是数字的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';

最新更新