如何在 2d 矢量上进行内存设置

How to memset on 2d vector

本文关键字:内存 设置 2d      更新时间:2023-10-16

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

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;
}

你可以用memsetstd::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;
}