C++标准库 copy

编译器: MSVC v142
所属文件: xutility
位置(行): 1799
函数名称: copy
函数描述:
将一对迭代器区间(由第一和第二个类型参数组成)Deep copy到另外一个迭代器(第三个类型参数)中.

备注:
copy函数是一个组织函数, 它统筹指挥所有的行为发生.

源码:

template 
inline _OutIt copy(_InIt _First, _InIt _Last, _OutIt _Dest) { // copy [_First, _Last) to [_Dest, ...)
    _Adl_verify_range(_First, _Last);
    const auto _UFirst = _Get_unwrapped(_First);
    const auto _ULast  = _Get_unwrapped(_Last);
    const auto _UDest  = _Get_unwrapped_n(_Dest, _Idl_distance<_InIt>(_UFirst, _ULast));
    _Seek_wrapped(_Dest, _Copy_unchecked(_UFirst, _ULast, _UDest));
    return _Dest;
}
  • _Adl_verify_range
    检查迭代器区间(由第一和第二个类型参数组成)是否正确(验证倒挂、顺序), 详细分析
  • _Get_unwrapped
    提取迭代器区间(由第一和第二个类型参数组成)的开始和结束的两个指针, 详细分析
  • _Idl_distance
    计算两个指针的区间长度, 详细分析
  • _Get_unwrapped_n
    尝试提取迭代器的_Ptr, 如果迭代器没有_ptr则原封不动的返回这个迭代器, 详细分析
  • _Copy_unchecked
    将迭代器区间Deep copy到另外一个迭代器中, 详细分析
  • _Seek_wrapped
    将第二个类型参数(迭代器)覆盖掉第一个类型参数(迭代器), 详细分析

你可能感兴趣的:(C++标准库 copy)