为什么 std::string[] 数组的 size() 函数返回错误数量的参数
Why is size() function of std::string[] array returning an incorrect number of parameters
这是一个简单的两行问题,我只是不明白。
我刚刚创建了一个包含 3 个成员的数组,然后立即报告大小为 6。之前它可以正常工作,但突然变了。我尝试清理我的项目。
这是使用 Visual Studio 2015
std::string detectionMethods[3] = { "SQUARE", "CIRCLE", "CIRCLE-SSV" };
int k_size = detectionMethods->length();
谢谢,
Source code and debug screenshot
没有原始数组的成员函数这样的东西。
子表达式 detectionMethods
引用原始数组并衰减为指向第一项的指针。剩下的,->length()
,调用第一项的成员函数
避免这些问题的一种简单方法是使用 std::vector
而不是原始数组。你的书应该是这样推荐的。
已返回第一个字符串的大小。
原因是作为数组的变量衰减为指向第一个元素的指针。
所以调用detectionMethods->length()
和调用detectionMethods[0].length()
是一样的
这是一个简单的两行问题,我只是不明白。
我刚刚创建了一个包含 3 个成员的数组,然后立即报告大小为 6。之前它可以正常工作,但突然变了。我尝试清理我的项目。
这是使用 Visual Studio 2015
std::string detectionMethods[3] = { "SQUARE", "CIRCLE", "CIRCLE-SSV" };
int k_size = detectionMethods->length();
谢谢,
Source code and debug screenshot
没有原始数组的成员函数这样的东西。
子表达式 detectionMethods
引用原始数组并衰减为指向第一项的指针。剩下的,->length()
,调用第一项的成员函数
避免这些问题的一种简单方法是使用 std::vector
而不是原始数组。你的书应该是这样推荐的。
已返回第一个字符串的大小。
原因是作为数组的变量衰减为指向第一个元素的指针。
所以调用detectionMethods->length()
和调用detectionMethods[0].length()