_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
このオーバーロードについて注意すべきことは、2 番目の範囲と出力範囲はサイズが自動的に推定される配列であるのに対し、最初の範囲は通常、範囲の開始と終了を指す 2 つの反復子として指定されることです。それ以外の場合、最初の 3 つのパラメーターは入力反復子になり、4 番目の戻り値の型は出力反復子になります。