我想填充一個給定的數組傳遞的值,所以如果我想要一個數組是12的 它只會用12s替換所有的元素。原型我有這個功能看起來是這樣的:我想不出如何填充一個數組
void fill(T *left, T *end, T fill)
此功能的驅動程序是這樣的:
static void TestFill1(void)
{
cout << "***** Fill1 *****" << endl;
int i1[10];
int size = 10;
fill(i1, i1 + size, 12);
display(i1, i1 + size);
}
我有我在哪裏給出一個數組,它是未初始化的一個問題。以前在任務中,我正在經歷陣列直到結束。在這種情況下,我得到一個未初始化的數組,這使得我的T *結尾與T *結尾相同。我不熟悉通過傳入數組的方式。
我是想的東西是這樣的:
template <typename T>
void fill(T *left, T *end, T fill)
{
int i = sizeof(*left)/sizeof(*(left + 0));
while(*(left + i) != *end)
{
*(left + i) = fill;
++i;
}
}
我不能使用標或循環用於這項任務也,是的#include關閉用相同的std ::載體的限制。
for循環是不允許的,但你可以使用while循環?..怪異的 – JoeC
@JoeC不需要'for'(雙關語意思);)... –