我尝试过这样的事情:
vector<bool> x(10, 0);
vector<vector<bool> > hello(10, x);
/*some modifications on hello*/
memset(&hello, 0, sizeof(hello));
我的程序编译,但它打破了。知道如何尽快完成这项操作吗?我知道memset可能因嵌套向量而无效,但我不确定如何完成此任务。
答案 0 :(得分:2)
我会使用它,它会重用您在问题中声明的x
变量。
std::fill(hello.begin(), hello.end(), x);
答案 1 :(得分:2)
for(auto& bv : hello)
std::fill(begin(bv), end(bv), false);
或者如果您想使用x
作为原型
std::fill(begin(hello), end(hello), x);
答案 2 :(得分:0)
有了你的代码,我会写......
for( auto& v : hello ) { v = x; }
假设x
仍为全零。它足够清晰,避免拖入<algorithm>
。
Hewever,将位矩阵的表示从矢量向量更改为单个向量,或者如果它是固定大小,更改为单个bitset
,可能会更快。