I was wondering if there is a build-in way in C++ to compare the order of two bidirectional iterators. For example, I have a Sum function to calculate the sum between 2 iterators in the same list:
double Sum(std::list::const_iterator Start, std::list::const_iterator End){
double sum=0;
for (Start;Start!=End;Start++)
sum+=*Start;
return sum;
}
Then:
Sum(my_list.begin(),my_list.end());
is fine, but Sum(my_list.end(),my_list.begin());
will cause runtime error.
I was thinking puttingif (Start>End) return 0;
to prevent the error. But it seems I cannot compare the iterators like this.