如何为向量的前n个元素赋值? 比如说,我想将1分配给从索引0到索引4的向量。
我已经有一个大小为11的向量。现在我想把1放到前5个元素中。
答案 0 :(得分:4)
您可以使用std::fill
或std::fill_n
:
std::fill(v.begin(), std::next(v.begin(), 5), 1);
std::fill_n(v.begin(), 5, 1);
注意:std::next
是C ++ 11。在这种情况下,它可以替换为v.begin() + 5
。
答案 1 :(得分:1)
如果你想构造一个这样填充的向量,请使用合适的构造函数:
std::vector<int> v(5,1);
这会创建5个整数,值为1。
答案 2 :(得分:1)
您可以使用std::fill
根据文件:
template< class ForwardIt, class T >
void fill(ForwardIt first, ForwardIt last, const T& value)
{
for (; first != last; ++first) {
*first = value;
}
}
你可以这样做:
std::fill(v.begin(), v.begin() +5, 1) ;//assume you fill 1 from index 0 to 4(included)