我正在尝试通过引用传递此数组,但我的代码似乎无法获取该函数。帮助
#include <iostream>
using namespace std;
void print( int (&array)[], int lower_bound, int upper_bound );
int main()
{
// generate array
const int SIZE = 20;
int array[SIZE];
for ( int i = 0; i < SIZE; i ++ ) array[i] = rand()%500;
// end generate array
print(array,0,19);
return 0;
}
void print( int (&array)[], int lower_bound, int upper_bound )
{
for ( int i = lower_bound; i <= upper_bound; i ++ ) cout << i << " : " << array[i] << endl;
}
答案 0 :(得分:0)
如何在CPP中通过引用传递数组?
你几乎得到了正确的语法,但你需要数组的大小,如果你只需要支持一个大小,你可以明确指定:
const int SIZE = 20;
void print( int (&array)[SIZE], int lower_bound, int upper_bound );
如果您需要不同大小的函数,请使用函数模板推导出它:
template <size_t N>
void print( int (&array)[N], int lower_bound, int upper_bound )
{
// code here
}
请注意,C ++中有更多惯用解决方案。一种是通过开始和一个过去的结束迭代器(普通指针将做)指定范围。其他人将std::array
用于固定大小的数组,std::vector
用于动态大小的数组。