#include <vector> #include <list> #include <deque> #include <iostream> using namespace std; //判断两个容器内的元素的值是否完全相同 template<typename T1,typename T2> bool is_equal(const T1 &t1,const T2 &t2) { if (t1.size()!=t2.size()) { return false; } T1::const_iterator iter_T1; T2::const_iterator iter_T2; for (iter_T1=t1.begin(),iter_T2=t2.begin(); iter_T1!=t1.end()/*&&iter_lst!=ilst.end()*/;//由于上面已经保证了长度相等 ++iter_T1,++iter_T2) { if (*iter_T1!=*iter_T2) { return false; } } return true; } //test int main() { vector<int> ivec(20,2); list<int> ilst(20,4); bool bEq=is_equal(ivec,ilst); if (bEq==true) { cout<<"完全相等"<<endl; } else { cout<<"不完全相等"<<endl; } //9.21题的测试 vector<int> iv(5,2); vector<int> dv(6,2);//注意这里将int改为double,将会出错 //但上面自己写的模板函数却不能发现这个问题????? if (iv<dv) { cout<<"iv<dv"<<endl; } else { cout<<"iv>=dv"<<endl; } return 0; }