所以我在这里有一个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;
}
答案 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;
}