这是我在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/

10-13 00:07