这是我在OpenCV中遇到的两行C++代码。
const Point* ppt[1] = { rookPoints[0] };
int npt[] = { 20 };
和以下内容有什么区别:
const Point* ppt = rookPoint[0];
int npt = 20;
单成员数组相对于单个变量是否具有任何特殊优势?
最佳答案
使用1元素数组意味着如果增加数组中的元素数量,则使用它的代码不必更改。
这些优点是与其他技术结合使用的,不是因为使用1元素数组
例如,给定类似
int npt[] = {20};
后续代码可能会做
for (i = 0; i < sizeof(npt)/sizeof(*npt); ++i)
{
// do something worthwhile with npt[i]
}
随后,如果
npt[]
的定义更改为int npt[] = {20, 30, 40};
那么后续代码仍然可以按预期工作。
而如果我们使用
int npt = {20};
声明,则在以后的某个时间需要扩展“后继代码”以使用2个或更多值的数组时,就需要重写该代码。显然,它是马匹。此类技术将用于基于数组中具有1个或多个值的设计中(并由给出此类设计规范的代码生成器)。
关于c++ - 一员数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32803847/