如何初始化一个所有元素为-1的二维数组?[重复]

问题描述 投票:0回答:1

我正试图使用备忘录解决一个动态编程问题。我需要将一个二维数组声明为全局变量,并将其所有元素初始化为-1,然后我将在一个递归函数中使用这个初始化的数组。然后我打算在一个递归函数中使用这个初始化的数组。

#include<iostream>
using namespace std;
int dp[1002][1002];
//initialize above array as all of its element = -1

int max_value(int val[], int wt[], int n, int W)
{
    if(n==0 || W==0)
    {
        return 0;
    }
    if(dp[n][W] != -1)
    {
        return dp[n][W];
    }
    if(wt[n-1] <= W)
    {
        return dp[n][W] = max(val[n-1] + max_value(val, wt, n-1, W-wt[n-1]), max_value(val, wt, n-1, W));
    }
    else
    {
        return dp[n][W] = max_value(val, wt, n-1, W);

    }
}

你能告诉我如何将数组dp[][]的所有元素初始化为-1吗?

c++ arrays algorithm dynamic-programming memoization
1个回答
1
投票

你可以使用 std::fill

std::fill(&dp[0][0], & dp[1001][1002], -1);
© www.soinside.com 2019 - 2024. All rights reserved.