对于类赋值,我需要创建4个函数来在程序中进行测试。我必须使用copyArray函数,PrintArray函数和InputArray函数。我最麻烦的问题是copyArray部分。我已经完成了我自己的大部分代码,但我需要知道我是否接近解决方案或者根本不关闭。代码,我确定,是一团糟。如果有人能帮助我找到完成这个目标的正确方向,我将非常感激。
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::istream;
using std::ostream;
void inputArray(istream &, int[], int*);
void printArray(ostream &, const int[], int);
float a[4] = { 0, 1, 2, 3 };
float b[4];
void copyArray(const int orig[], int dup[], int);
void main()
{
int a[4] = { 7, 14, 9, 10 };
int b[4];
cout << "The input data : " << endl;
inputArray(cin, a, b);
cout << "The printArray data : " << endl;
printArray(cout, b, 4);
}
//----------------------------------------------------------------------------
void inputArray(istream & in, int t[], int howMany)
{
for (int i = 0; i < howMany; i++)
in >> t[i];
return;
}
//-----------------------------------------------------------------------------
void printArray(ostream & out, const int r[], int cnt)
{
for (int i = 0; i< cnt; i++)
out << r[i] << endl;
return;
}
void copyArray(const int orig [], int dup [], int);
for (int i = 0; i < 4; i++){
b[i] = a[i];
}
}
答案 0 :(得分:0)
当然最好将函数copyArray定义为模板函数。例如
template <typename T, size_t N>
void copyArray( T ( &dst )[N], const T ( &src )[N] )
{
for ( size_t i = 0; i < N; i++ ) dst[i] = src[i];
}
至于你的函数声明,那么它的定义可能看起来像
void copyArray( int dst[], const int src[], size_t n )
for ( size_t i = 0; i < n; i++ ) dst[i] = src[i];
}
在你所显示的函数定义中,你必须在右括号后删除分号,并使用函数参数而不是全局变量。
考虑到标题std::copy
,std::copy_n
,std::copy_if
,std::copy_backward
在标题<algorithm>
中声明可用于处理数组的算法。