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

前端 未结 4 553
野的像风
野的像风 2020-12-15 04:36

I want to add a value multiple times to an std::vector. E.g. add the interger value 1 five times to the vector:

std::vector vec;
vec.add(1, 5);


        
相关标签:
4条回答
  • 2020-12-15 04:40

    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);
    
    0 讨论(0)
  • 2020-12-15 04:51

    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;
    }
    
    0 讨论(0)
  • 2020-12-15 04:52

    You can use the assign method:

    vec.assign(5, 1);
    

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

    0 讨论(0)
  • 2020-12-15 05:01

    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.

    0 讨论(0)
提交回复
热议问题