如何在2d矢量上记忆

时间:2018-04-19 09:05:13

标签: c++ fill memset 2d-vector

所以我在这里有一个2D Vector,我想分配一个值num,我想看看哪个执行更好的填充vs memset()作为C ++ noob,我实际上有问题设置正确的代码语法,因为我总是得到我这样做时会出现分段错误。

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

1 个答案:

答案 0 :(得分:3)

As you can use memset for std::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;
}