VS2013文件目录下的xutility文件对copy函数进行了定义,重载了6个函数;
其中一个定义如下:
template<class _InIt,
class _OutIt> inline
_OutIt copy(_InIt _First, _InIt _Last,
_OutIt _Dest)
{ // copy [_First, _Last) to [_Dest, ...)
if (_First == _Last)
return (_Dest);
else
{ // worth copying, check then copy
_DEBUG_RANGE(_First, _Last);
_DEBUG_POINTER(_Dest);
return (_Copy_impl(_Unchecked(_First), _Unchecked(_Last),
_Dest, _Is_checked(_Dest)));
}
}
基于模板类型的定义,功能更加强大;可用于C++顺序表删除中间节点后移动列表元素;
省去了C语言一系列指针移动操作,更加体现了C++封装的强大。