gpt4 book ai didi

c++ - 传递数组作为引用

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:53:38 24 4
gpt4 key购买 nike

在 C++ 中,当我在编译时不知道大小时,如何传递数组作为引用?到目前为止,我发现让它工作的唯一方法是使用类似

const double( &numbers ) [size]

但这意味着我需要在编译时知道数组的大小,因此我不能在外部函数中使用它。

我的问题是:

  1. 如果我不将数组作为 ( const double( &numbers ) [length] ) 传递,因为例如我不知道它的大小,我如何确定它没有被复制,但它被引用
  2. 如果我像上面的例子一样传递一个数组,( double array[] )引用还是复制

最佳答案

其他答案都很好,但没有人提到使用模板来处理这个问题。你仍然应该让你的函数接受一个指针和一个大小,但是模板可以自动为你填充:

void f( double const numbers[], std::size_t length )
{ ... }

template< std::size_t Length >
void f( double const (&numbers)[ Length ] )
{
return f( numbers, Length );
}

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

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