使用 char 访问 vector<int>

Using char to access vector<int>

我正在努力解决 C++ 中的 leetcode 问题以供练习。

我遇到了第 3 个问题。我不太明白为什么可以使用 char 数据类型访问矢量。

例如:

vector<int> chars(128);
char c = 'a';
chars[c]++;

上面的代码只是表示增加位置'a'处的向量??? 1.

我很困惑。难道我们不应该使用数字索引像访问数组一样访问向量吗?

向量是否将 char 类型隐式转换为 decimal?

一些澄清将不胜感激。

假设您的系统使用 ASCII 或 UTF-8 或类似的东西,'a' == 97

因此,这相当于 chars[97]++

Are we not suppose to access vectors like an array using numerical index?

谁告诉你的?应该像访问数组一样访问向量。这个有std::vector<>::operator[] and std::vector<>::at()

Does vectors implicitly convert char types to decimal?

C++ 中没有“十进制”类型。并且 std::vector 在这种情况下不做任何事情。 operator[] 接收一个 size_type,并且 char 可以隐式转换为 size_type,因此 C++ 会将 c 转换为适当的类型。 char 不适用于存储字符。它只是一个数字类型,如 intlong.