繁体   English   中英

如何为向量的前n个元素分配值? C ++

[英]How to assign a value to the first n elements of a vector? c++

如何为向量的前n个元素分配值? 说,我想为索引0到索引4的向量分配1。

我已经有一个大小为11的向量。现在,我想在前5个元素中放入1。

您可以使用std::fillstd::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

如果要构造一个这样填充的向量,请使用适当的构造函数:

std::vector<int> v(5,1);

这将创建5个值为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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM