To append the elements of an existing array (or other range in general) to a vector you can just use the vector's insert overload for an iterator range:
vector<int> vec{1, 2, 3};
array<int, 3> arr{4, 5, 6};
// arr could be some other container or bare array as well, for ex.:
// int arr[] = {4, 5, 6};
// vector<int> arr {4, 5, 6};
// list<int> arr {4, 5, 6};
// ...
vec.insert(vec.end(), begin(arr), end(arr)); // insert at vec.end() = append
//or vec.insert(vec.end(), arr.begin(), arr.end()); // insert at vec.end() = append
Note that if you have some other type instead of int which is expensive to copy, and you want to move the elements from the source array, you can use
move_iterator, for ex.
vec.insert(vec.end(), move_iterator(arr.begin()), move_iterator(arr.end()));
For operations on ranges in general, the container member functions are to be preferred instead of the same-named functions from the <algorithm> header.
So for example in this case the vec.insert will insert the range at once, as opposed if have had used the std::insert where the elements would be inserted one by one.
This is very nice explained in the Scott Meyers Effective STL.
Live