考虑下面的语句:
int arr[]={1,2,3,4,5};
vector<int>vi;
copy(arr,arr+5,vi.begin());
该语句不会执行,因为没有为vi分配存储空间,而copy函数使用复制运算符将元素从源拷贝到目的。STL提供了三种可以将元素插入到目的的迭代器,成为插入迭代器。
back_inserter:这种迭代器调用容器的push_back操作替代赋值运算符。该迭代器的参数是容器本身。
front_inserter:该迭代器使用push_front操作替代赋值运算符。参数是容器本身。
inserter:该迭代器使用容器的insert操作替代赋值运算符。该迭代器有两个参数:第一个参数是容器本身,第二个参数是容器的一个迭代器,用以指定插入位置。