#include <iostream> #include <stdlib.h> #include <string.h> #include <algorithm> #include <vector> #include <list> #include <deque> using namespace std; //利用模版进行输出 template <typename Tv> void print_v(vector<Tv> a) { //输出方法1 for(auto i:a) { cout<<i<<' '; } cout<<endl; //输出方法2 typename vector<Tv>::iterator it;//前面要加typename,要不会出错 for(it=a.begin();it!=a.end();it++) { cout<<*it<<' '; } cout<<endl; } template <typename Tl> void print_l(list<Tl> a) { //输出方法1 for(auto i:a) { cout<<i<<' '; } cout<<endl; //输出方法2 typename list<Tl>::iterator it;//前面要加typename,要不会出错 for(it=a.begin();it!=a.end();it++) { cout<<*it<<' '; } cout<<endl; } template <typename Tq> void print_q(deque<Tq> a) { //输出方法1 for(auto i:a) { cout<<i<<' '; } cout<<endl; //输出方法2 typename deque<Tq>::iterator it;//前面要加typename,要不会出错 for(it=a.begin();it!=a.end();it++) { cout<<*it<<' '; } cout<<endl; } int main() { //copy list to list list<string> l={"12","13","14","15"}; list<string> l_1(l);//方法1 list<string> l_2; copy(l.begin(), l.end(), back_inserter(l_2));//方法2 cout<<"l_1: "; print_l(l_1); cout<<"l_2: "; print_l(l_2); cout<<"----------------------------------------------"<<endl; //copy vector to vector vector<string> v={"v1","v2","v3","v4"}; vector<string> v_1(v);//方法1 vector<string> v_2; copy(v.begin(), v.end(), back_inserter(v_2));//方法2 cout<<"v_1: "; print_v(v_1); cout<<"v_2: "; print_v(v_2); cout<<"----------------------------------------------"<<endl; //copy list to vector list<string> list1={"12","13","14","15"}; vector<string> vector1; copy(list1.begin(), list1.end(), back_inserter(vector1)); cout<<"vector1: "; print_v(vector1); cout<<"----------------------------------------------"<<endl; //copy vector to list vector<string> vector2={"v1","v2","v3","v4"}; list<string> list2; copy(vector2.begin(), vector2.end(), back_inserter(list2)); cout<<"list2: "; print_l(list2); cout<<"----------------------------------------------"<<endl; //copy deque to vector deque<string> deque3(6,"abc"); vector<string> vector3; copy(deque3.begin(), deque3.end(), back_inserter(vector3)); cout<<"vector3: "; print_v(vector3); cout<<"----------------------------------------------"<<endl; //copy vector to deque deque<string> deque4; vector<string> vector4(6,"dfg"); copy(vector4.begin(), vector4.end(), back_inserter(deque4)); cout<<"deque4: "; print_q(deque4); cout<<"----------------------------------------------"<<endl; //copy deque to list deque<string> deque5(6,"dfg"); list<string> list5; copy(deque5.begin(), deque5.end(), back_inserter(list5)); cout<<"list5: "; print_l(list5); cout<<"----------------------------------------------"<<endl; //copy vector to deque deque<string> deque6; list<string> list6(6,"dfg"); copy(list6.begin(), list6.end(), back_inserter(deque6)); cout<<"deque6: "; print_q(deque6); cout<<"----------------------------------------------"<<endl; return 0; }