2013-07-31 30 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)