template<typename IterT, typename DistT>
void advance(IterT& iter, DistT d)
{
if(typeid(typenamestd::iterator_traits<IterT>::iterator_category)
==typeid(std::random_access_iterator_tag))
{
iter += d; // use iterator arithmetic
} // for random access iters
else
{
if (d >= 0)
{ while (d--) ++iter; } // use iterative calls to
else
{ while (d++) --iter; } // ++ or -- for other
} // iterator categories
}
C++中advance的代码实现
最新推荐文章于 2024-06-18 18:55:46 发布