gpt4 book ai didi

c++ - 将点数组作为参数传递

转载 作者:行者123 更新时间:2023-11-28 00:24:30 26 4
gpt4 key购买 nike

我有一个点数组,定义如下:

const int pNum = 8;
Point framePt[pNum];

我想将它传递给一个函数,该函数将访问数组中的值并获取数组的大小。所以我定义了如下函数:

void getFrameCord(Point *framePt)

但这确实没有传递数组。那么有人可以帮我吗?谢谢!

最佳答案

你必须以某种方式告诉函数数组中元素的数量。指向元素的指针仅指示该特定元素的位置,它不携带任何信息,例如该元素是否是数组的一部分(更不用说该数组有多大)。

一些可能的解决方案:


void getFrameCord(Point *framePt, size_t num_points);
// ...
getFrameCord(framePt, pNum);

template<size_t N>
void getFrameCord(Point (&framePt)[N])
{ /* ... */ }

// ...
getFrameCord(framePt);

template<typename InputIterator>
void getFrameCord(InputIterator b, InputIterator e)
{
// ...
}

// ...
getFrameCord( std::begin(framePt), std::end(framePt) )

其中的最后一个将允许您将 getFrameCord 用于任何点容器或容器的任何部分;它不会限制调用者将点存储在连续数组中。

关于c++ - 将点数组作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25732265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com