我正在尝试将2D vector 中所有元素的值设置为特定值。据我所知,不能将memset用于 vector ,例如如何将它们用于数组。因此,我必须使用std::fill将2D vector 中的所有元素设置为特定值。但是,我知道如何将填充用于一维 vector ,如下所示。
vector<int> linearVector (1000,0);
fill(linearVector.begin(),linearVector.end(),10);
但是,当我尝试对2D vector 执行类似操作时(如下所示),它不起作用。
vector<vector<int> > twoDVector (100,vector <int> (100,0));
fill(twoDVector.begin(),twoDVector.end(),10);
PS:我知道我可以轻松设计一个嵌套的for循环,以手动将2D vector 的元素设置为所需的值。但是,在我的程序中这是不可行的,因为2D vector 的大小很大,并且还有其他耗时的函数(递归函数)并行发生。
最佳答案
您可以这样使用:
fill(twoDVector.begin(), twoDVector.end(), vector<int>(100, 10));
关于c++ - 在2D int vector 上使用std::fill,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51166103/