This is what I've tried:
#include <iostream>
#include <list>
#include <vector>
template<typename T, typename U>
bool is_equal(T begin_vec,T end_vec, U begin_list, U end_list){
while(begin_vec!=end_vec){
if(*begin_vec==*begin_list){
begin_vec++;
begin_list++;
return true;
}
else return false;
}
}
int main(){
std::vector<int> vec_num{1,2,3,4,5,6};
std::list<int> list_num{1,2,3,4,5,6};
if(is_equal(vec_num.begin(),vec_num.end(),list_num.begin(),list_num.end())){
std::cout<<"They are equal!"<<std::endl;
}
}
I think that a problem can arise if, for example, a vector has fewer elements and all elements are equal up to that point.