<nobr>1<br>
2<br>
3<br>
4<br>
5<br>
6<br>
7<br>
8<br>
9<br>
10<br>
11<br>
12<br>
13<br>
14<br>
15<br>
16<br>
17<br>
18<br>
19<br>
20<br>
21<br>
22<br>
23<br>
24<br>
25<br>
26<br>
27<br>
28<br>
29<br>
30<br>
31<br>
32<br>
33<br>
34<br>
35<br>
36<br>
37<br>
38<br>
39<br>
40<br>
41<br>
42<br>
43<br>
44<br>
45<br>
46<br>
47<br>
48<br>
49<br>
50<br>
51<br>
52<br>
53<br>
54<br>
55<br>
56<br>
57<br>
58<br>
59<br>
60<br>
61<br>
62<br>
63<br>
64<br>
65<br>
66<br>
67<br>
68<br>
69<br>
70<br></nobr>
|
|
//TEMPLATEFUNCTIONtransformWITHUNARYOP template<class_InIt,class_OutIt,class_Fn1,class_InOutItCat> inline
_OutIt_Transform(_InIt_First,_InIt_Last,_OutIt_Dest,_Fn1_Func,
_InOutItCat,_Range_checked_iterator_tag)
{ //transform[_First,_Last)with_Func _DEBUG_RANGE(_First,_Last);
_DEBUG_POINTER(_Dest);
_DEBUG_POINTER(_Func); for(;_First!=_Last;++_First,++_Dest)
*_Dest=_Func(*_First); return(_Dest);
}
template<class_InIt,class_OutIt,class_Fn1> inline
_IF_CHK(_OutIt)transform(_InIt_First,_InIt_Last,_OutIt_Dest,_Fn1_Func)
{ return_Transform(_CHECKED_BASE(_First),_CHECKED_BASE(_Last),_Dest,_Func,
_Iter_random(_First,_Dest),_STD_Range_checked_iterator_tag());
}
//TEMPLATEFUNCTIONtransformWITHBINARYOP template<class_InIt1,class_InIt2,class_OutIt,class_Fn2,class_InItCats,class_InOutItCat> inline
_OutIt_Transform(_InIt1_First1,_InIt1_Last1,_InIt2_First2,
_OutIt_Dest,_Fn2_Func,
_InItCats,_InOutItCat,
_Range_checked_iterator_tag,_Range_checked_iterator_tag)
{ //transform[_First1,_Last1)and[_First2,_Last2)with_Func _DEBUG_RANGE(_First1,_Last1);
_DEBUG_POINTER(_Dest);
_DEBUG_POINTER(_Func); for(;_First1!=_Last1;++_First1,++_First2,++_Dest)
*_Dest=_Func(*_First1,*_First2); return(_Dest);
}
template<class_InIt1,class_InIt2,class_OutIt,class_Fn2,class_InOutItCat> inline
_OutIt_Transform(_InIt1_First1,_InIt1_Last1,_InIt2_First2,
_OutIt_Dest,_Fn2_Func,
random_access_iterator_tag,_InOutItCat,
_Range_checked_iterator_tag,_Range_checked_iterator_tag)
{ //transform[_First1,_Last1)and[_First2,_Last2)with_Func //forrangecheckediterators,thiswillmakesurethereisenoughspace _InIt2_Last2=_First2+(_Last1-_First1);
(_Last2); return_Transform(_First1,_Last1,_CHECKED_BASE(_First2),
_Dest,_Func,
forward_iterator_tag(),forward_iterator_tag(),
_Range_checked_iterator_tag(),_Range_checked_iterator_tag());
}
template<class_InIt1,class_InIt2,class_OutIt,class_Fn2> inline
_IF_CHK2_(_InIt2,_OutIt,_OutIt)transform(_InIt1_First1,_InIt1_Last1,_InIt2_First2,
_OutIt_Dest,_Fn2_Func)
{ return_Transform(_CHECKED_BASE(_First1),_CHECKED_BASE(_Last1),_First2,_Dest,_Func,
_Iter_random(_First1,_First2),_Iter_random(_First1,_Dest),
_STD_Range_checked_iterator_tag(),_STD_Range_checked_iterator_tag());
}
|
相关推荐
微软c++ STL源代码微软c++ STL源代码微软c++ STL源代码微软c++ STL源代码微软c++ STL源代码微软c++ STL源代码微软c++ STL源代码微软c++ STL源代码微软c++ STL源代码微软c++ STL源代码微软c++ STL源代码微软c++ STL源...
STL算法备忘单+来自STL算法视频系列的示例代码_C++_下载.zip
C++ STL--数据结构与算法实现(余文溪)示例程序代码.rar
c++ STL, stl,stl的学习c++ STL, stl,stl的学习c++ STL, stl,stl的学习c++ STL, stl,stl的学习
C++库函数及STL算法(英文版)介绍及用法 每个函数都有简单的源文件说明,有例子
《C++STL程序员开发指南》源代码 C++ STL 源代码 源码
C++ STL标准程序库开发指南 源代码.rar
【STL源代码】中包含了许多常用的数据结构(如vector、list、map等)和算法(如排序、查找、遍历等)。通过阅读代码可以仔细研究这些数据结构和算法的实现,了解它们的内部工作原理和使用方式。
C++stl库源代码,可供学习数据结构的同学提供参考和帮助。加深对数据结构的理解。
C++的stl源代码。
侯捷老师推荐C++ SGI STL标准库源代码,可用于学习c++各种容器、常用算法、迭代器等的底层实现。c++进阶必备,必知必会内容。
一款用C++编程实现的类库与算法皇后问题回溯法实现,八皇后问题,期末考试编程实现题,压缩包有运行截图,已通过老师满分测试,相信很多同学需要用到。
C++ STL_示例word 格式 提供例程 string vector list等数据结构示例 #include #include using namespace std; void main() { //用const char * 构造strText对象 string strText("This is a test"); //在strText...
22.2 反向复制copy_backward 305 22.3 元素交换swap 306 22.4 迭代器交换iter_swap 307 22.5 区间元素交换swap_ranges 308 22.6 元素变换transform 309 22.7 替换 310 22.8 条件替换replace_if 311 ...
C++ 的 stl 源代码下载,熟悉C++stl库的原理和机制, 了解array等数据结构的内在实现
C++ stl算法汇总 STL 各种算法 应用 大全
stl常用算法,模板stl常用算法,
VC代码 STL_Code (实用代码源).rarVC代码 STL_Code (实用代码源).rarVC代码 STL_Code (实用代码源).rarVC代码 STL_Code (实用代码源).rarVC代码 STL_Code (实用代码源).rarVC代码 STL_Code (实用代码源).rarVC代码 ...
涵盖所有STL源代码,是使用STL编程人员的首选。 用就先理解它
从逆向角度看C++ STL代码之std::map