Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add same value multiple times to std::vector (repeat)

Tags:

c++

std

vector

It really depends what you want to do.

Make a vector of length 5, filled with ones:

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

Grow a vector by 5 and fill it with ones:

std::vector<int> vec;
// ...
vec.insert(vec.end(), 5, 1);

Or resize it (if you know the initial size):

std::vector<int> vec(0);
vec.resize(5, 1);

You can also fill with elements using one of the many versions of fill, for example:

fill_n(back_inserter(vec), 5, 1);

and so on.... Read the library documentation, some of these functions return useful information, too.


Just use std::vector::insert.

#include <vector>
#include <iostream>

int main()
{
    std::vector<int> a;
    a.insert(a.end(), 5, 1);
    for(auto const& e : a)
        std::cout << e << std::endl;
    return 0;
}

You can just use the std::vector constructor for this:

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

The signature for this is:

vector (size_type n, const value_type& val)

The standard algorithm header has a number of functions which can be used in cases like this. std::fill_n would work for your case.:

std::fill_n (std::back_inserter(vec), 5, 1);

You can use the assign method:

vec.assign(5, 1);

This will delete any existing elements in the vector before adding the new ones.


Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!