使用 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
不适用于存储字符。它只是一个数字类型,如 int
或 long
.
我正在努力解决 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
不适用于存储字符。它只是一个数字类型,如 int
或 long
.