我有以下代码为向量的所有元素赋值:
x = 100;
for (int i=0;i<vect.size();i++)
{
vect[i] = x;
}
Run Code Online (Sandbox Code Playgroud)
这很简单,但我想知道STL中是否有一个功能可以做同样的事情; 类似于for_each,但是用于分配.
GMa*_*ckG 10
用途std::fill:
std::fill(vect.begin(), vect.end(), 100);
Run Code Online (Sandbox Code Playgroud)
注意,如果要初始化向量以具有所有相同的值,可以使用适当的构造函数:
std::vector<int> v(5, 100); // 5 elements set to 100
Run Code Online (Sandbox Code Playgroud)
assign 可用于"重置向量",但如果您只是制作向量,请使用构造函数.
vect.assign(n, x);
Run Code Online (Sandbox Code Playgroud)
n 是元素的数量.
x 是要填补的价值.
不同之处std::fill在于您提供了此长度.std::fill将使用向量的先前长度.(实际上,它会使用你告诉它的任何矢量段,但是使用vect.begin()和vect.end()上面的例子一样会使用前面的长度.)根据情况,你会想要使用其中一个.
| 归档时间: |
|
| 查看次数: |
822 次 |
| 最近记录: |