Ada*_*eld 81
用途std::fill():
std::fill(myVector.begin(), myVector.end(), 0);
Run Code Online (Sandbox Code Playgroud)
Mar*_*som 25
如果您的向量包含POD类型,则可以安全地使用memset - 向量的存储保证是连续的.
memset(&vec[0], 0, sizeof(vec[0]) * vec.size());
Run Code Online (Sandbox Code Playgroud)
编辑:抱歉向您抛出一个未定义的术语 - POD代表普通旧数据,即C中可用的类型以及从它们构建的结构.
再次编辑:正如评论中指出的那样,即使bool是一种简单的数据类型,vector<bool>也是一个有趣的例外,如果你试图在其上使用memset,它将会失败.在这种情况下,亚当罗森菲尔德的答案仍然完美无缺.
您可以在向量中使用assign方法:
为向量分配新内容,替换其当前内容,并相应地修改其大小(如果不更改向量大小,只需传递 vec.size() )。
例如:
vector<int> vec(10, 0);
for(auto item:vec)cout<<item<<" ";
cout<<endl;
// 0 0 0 0 0 0 0 0 0 0
// memset all the value in vec to 1, vec.size() so don't change vec size
vec.assign(vec.size(), 1); // set every value -> 1
for(auto item:vec)cout<<item<<" ";
cout<<endl;
// 1 1 1 1 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)
引用: http: //www.cplusplus.com/reference/vector/vector/assign/