= #include <deque> #include <iterator> #include <xutility> #include <algorithm> using namespace std; int main() { typedef deque<int> IntDeque; typedef IntDeque::iterator Iter; typedef IntDeque::const_iterator ConstIter; int a[]={0,1,2,3,4,5,6,7,8,9}; IntDeque id(a,a+10); Iter i(id.begin()); ConstIter ci=find(id.begin(),id.end(),4); //advance(i, distance(i,ci)); // error! // //----------------distance_impl------------------------ // // template<typename InputIterator> // typename iterator_traits<InputIterator>::difference_type // distance(InputIterator first, InputIterator last); //first and last must be same. // //----------------------------------------------------- advance(i, distance((ConstIter)i,ci)); id.erase(i); return 0; }