How do I pass multiple ints into a vector at once?

后端 未结 6 1989
北荒
北荒 2020-12-01 04:08

Currently when I have to use vector.push_back() multiple times.

The code I\'m currently using is

  std::vector TestVector;
         


        
相关标签:
6条回答
  • 2020-12-01 04:33

    Try pass array to vector:

    int arr[] = {2,5,8,11,14};
    std::vector<int> TestVector(arr, arr+5);
    

    You could always call std::vector::assign to assign array to vector, call std::vector::insert to add multiple arrays.

    If you use C++11, you can try:

    std::vector<int> v{2,5,8,11,14};
    

    Or

     std::vector<int> v = {2,5,8,11,14};
    
    0 讨论(0)
  • 2020-12-01 04:36

    These are the three most straight forward methods:

    1) Initialize from an initializer list:

    std::vector<int> TestVector = {2,5,8,11,14};
    

    2) Assign from an initializer list:

    std::vector<int> TestVector;
    TestVector.assign( {2,5,8,11,14} ); // overwrites TestVector
    

    3) Insert an initializer list at a given point:

    std::vector<int> TestVector;
    ...
    TestVector.insert(end(TestVector), {2,5,8,11,14} ); // preserves previous elements
    
    0 讨论(0)
  • 2020-12-01 04:43

    You can also use Boost.Assignment:

    const list<int> primes = list_of(2)(3)(5)(7)(11);
    
    vector<int> v; 
    v += 1,2,3,4,5,6,7,8,9;
    
    0 讨论(0)
  • 2020-12-01 04:44

    You can also use vector::insert.

    std::vector<int> v;
    int a[5] = {2, 5, 8, 11, 14};
    
    v.insert(v.end(), a, a+5);
    

    Edit:

    Of course, in real-world programming you should use:

    v.insert(v.end(), a, a+(sizeof(a)/sizeof(a[0])));  // C++03
    v.insert(v.end(), std::begin(a), std::end(a));     // C++11
    
    0 讨论(0)
  • 2020-12-01 04:57

    You can do it with initializer list:

    std::vector<unsigned int> array;
    
    // First argument is an iterator to the element BEFORE which you will insert:
    // In this case, you will insert before the end() iterator, which means appending value
    // at the end of the vector.
    array.insert(array.end(), { 1, 2, 3, 4, 5, 6 });
    
    0 讨论(0)
  • 2020-12-01 04:57

    using vector::insert (const_iterator position, initializer_list il); http://www.cplusplus.com/reference/vector/vector/insert/

    #include <iostream>
    #include <vector>
    
    int main() {
      std::vector<int> vec;
      vec.insert(vec.end(),{1,2,3,4});
      return 0;
    }
    
    0 讨论(0)
提交回复
热议问题