2013-07-31 45 views
1

如何为矢量的前n个元素赋值? 说,我想分配1从一个向量从索引0到索引4.如何为矢量的前n个元素赋值? C++

我已经有一个大小为11的向量。现在我想把1放到头5个元素。

+1

'stf :: fill(v.begin(),v.begin()+ 5,1);''其中v是你的向量。 – jrok

+3

Or:'std :: fill_n(v.begin(),5,1);' –

+0

你已经有一个向量?放入5件东西足够大吗? – doctorlove

回答

4

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

1

如果你想构建充满这样的一个载体,应用合适的构造函数:

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

这将创建5个整数值为1

+0

我已经有一个大小为11的矢量。现在我想把1放到前5个元素中。 – user2565858

+0

原来的问题并不清楚。其他人的回答使用填写工作的情况下 – doctorlove

+0

谢谢你。 – user2565858

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)