#include <iostream>
#include <list>
#include <string>
#include <vector>
#include <iterator>
using namespace std;
int main()
{
	//copy list to list
	list<string> oldList;
	list<string> newList;
	oldList.push_back("test1");
	oldList.push_back("test2");
	oldList.push_back("test3");
	copy(oldList.begin(), oldList.end(), back_inserter(newList));	
	//copy vector to vector
	vector<string> oldVector;
	vector<string> newVector;
	oldVector.push_back("test4");
	oldVector.push_back("test5");
	oldVector.push_back("test6");
	copy(oldVector.begin(), oldVector.end(), back_inserter(newVector));	
	//copy list to vector
	list<string> list1;
	vector<string> vector1;
	list1.push_back("test7");
	list1.push_back("test8");
	list1.push_back("test9");
	copy(list1.begin(), list1.end(), back_inserter(vector1));	
	//copy vector to list
	vector<string> vector2;
	list<string> list2;
	vector2.push_back("test10");
	vector2.push_back("test11");
	vector2.push_back("test12");
	copy(vector2.begin(), vector2.end(), back_inserter(list2));	
	return 0;
}
特别注意:
copy(vec.begin()+3, vec.begin()+6, back_inserter(list2));这样的情况下,仅仅是拷贝了vec[3]、vec[4]、vec[5] 。
vec[6]并没有拷贝!
!
原文:http://www.cnblogs.com/brucemengbm/p/7043439.html