_OutTy* // output type
transform<_InIt1, // input iterator type for first range
_InTy, _InSize, // input and size type for second range (array)
_OutTy, _OutSize, // output and size type for output range (array)
_Fn2> // transformation function object type
(_InIt1 _First1, _InIt1 _Last1, // first and last iterators for first range
_InTy (&_First2)[_InSize], // array for second range
_OutTy(&_Dest)[_OutSize], // array for output range
_Fn2 _Func) // transformation function object
我的建议:不要浪费时间这样做。我花了几分钟才自己打破它,我已经习惯了这些东西。按照其他帖子中的建议快速访问文档。
如果您希望能够破译 MSVC 的 C++ 库实现,它有助于查看它们的标头,而不仅仅是智能感知。您将了解他们使用的一些常见约定,例如InIt
输入迭代器、RanIt
随机访问迭代器等。理解基本的 STL 概念(如序列、输入迭代器、双向迭代器等)也很重要。这里有一个相当过时但仍然很好且措辞谨慎的参考:http ://www.sgi.com/tech/stl/table_of_contents.html
关于这个重载需要注意的是,第二个范围和输出范围是自动推导出大小的数组,而第一个范围通常指定为一对指向范围开始和结束的迭代器。否则,前三个参数将是输入迭代器,第四个和返回类型将是输出迭代器。