2

所以我在这里有一个二维向量,我想分配一个值 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;
}
4

1 回答 1

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;
}
于 2018-04-19T09:26:38.840 回答