如何在 2d 向量上进行 memset

Zam*_*dia 2 c++ memset fill 2d-vector

所以我在这里有一个 2D 向量,我想为其分配一个值 num,我想看看作为 C++ 菜鸟的填充与 memset() 哪个更好,我实际上在设置正确的代码语法时遇到了问题,因为我总是在以下情况下遇到分段错误我做。

vector<vector<int>> matrix(10, vector<int>(10000000));
int main()
{
    int num;
    cin >> num;
    int i = 0;
    for (auto &i : matrix)
    {
        fill(i.begin(), i.end(), num); 
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

HMD*_*HMD 5

可以使用memsetforstd::vector<int>,我认为这不是一个好主意,而且使用std::vector. 是的,您可以使用std::fill您使用它的方式,但在您的情况下有一种更简单的方法,即使用std::vector构造函数。像这样 :

int main()
{
    int num;
    std::cin >> num;
    std::vector<std::vector<int>> matrix(10, std::vector<int>(10000000, num));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)