问题:关于back_inserter的工作原理
问题:关于back_inserter的工作原理
下面这个小程序,第二个copy用的v.begin()返回一个iterator,这个iterator实现了operator*()等。
但是第一个back_inserter是个函数模板,传入参数可以是数组或者容器。
那么back_inserter怎么知道,如何去取元素?
它不知道传入的v是个vector可以调begin(),v可能是个普通数组。
我在VC下看back_inserter的实现代码,一层套一层的太复杂了。
各位高人可以简单的解释一下么
#include "stdafx.h"#include<string>#include<vector>#include<iostream>#include<algorithm>#include<iterator>#include<functional>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ typedef vector<int> vi; vi v; int buf[2]={1,2}; copy(buf,buf+2,back_inserter(v)); copy(buf,buf+2,v.begin()); return 0;}