在类模板std::vector
中有三种这样的方法,它们是:
iterator insert(const_iterator position, size_type n, const T& x);
template <class InputIterator>
iterator insert(const_iterator position, InputIterator first, InputIterator last);
iterator insert(const_iterator position, initializer_list<T> il);
看起来对于你的任务来说,最合适的方法是
template <class InputIterator>
iterator insert(const_iterator position, InputIterator first, InputIterator last);
这是一个演示程序。
#include <iostream>
#include <vector>
#include <iterator>
int main()
{
std::vector<int> v1 = { 0, 1, 1, 0 };
std::vector<int> v2 = { 1, 2, 3, 2, 1 };
v1.insert( std::next( v1.begin(), 2 ),
std::next( v2.begin(), 1 ),
std::prev( v2.end(), 1 ) );
for ( int x : v1 ) std::cout << x << ' ';
std::cout << std::endl;
}
程序的输出为:
0 1 2 3 2 1 0
std::assign
的? - Jonathan Wakelystd::vector::assign()
。 - Remy Lebeau