1. 程式人生 > >使用stl中的 advance和 distance 方法來進行iterator的加減

使用stl中的 advance和 distance 方法來進行iterator的加減

 template<typename _InputIterator>

    inline typename iterator_traits<_InputIterator>::difference_type

    distance(_InputIterator __first, _InputIterator __last)

    {

// concept requirements -- taken care of in __distance

      return std::__distance(__first, __last,

    std::__iterator_category(__first));

    }

  第一個引數first,第二個引數last  

   返回的是基於 first + n  = last  ,中的 n

 也就是基於,last 是由first經過n可以到達的,注意n可能為負的。

 我第一次使用這個就是將兩個引數順序弄反了,結果返回負的n,而我這個是對應一個數字的Index下標,結果導致找不到對應的index的元素。