Loading... ## 概述: 算法主要是由头文件< algorithm>、< functional>、< numeric>组成 < algorithm>是所以STL头文件中最大的一个,范围设计到比较,交换,查找,遍历操作,复制,修改等 < numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数 < functional>定义了一些模板类,用以声明函数对象 ## 算法简介: for_each();//遍历容器 transform;//搬运容器到另一个容器中 ### for_each() ```cpp #include<iostream> #include<vector> #include<algorithm> using namespace std; void for_each_prin(int val)//利用普通函数输出容器中元素 { cout << val << " "; } class For_each_prin//利用仿函数输出容器中元素 { public: void operator()(int val)const { cout << val << " "; } }; void text() { vector<int>v; for (int i = 0; i < 10; i++) { v.push_back(i); } for_each(v.begin(), v.end(), for_each_prin);//调用普通函数 cout << endl; for_each(v.begin(), v.end(), For_each_prin());//调用仿函数 } int main() { text(); return 0; } ``` ## transform ```cpp #include<iostream> #include<vector> #include<algorithm> using namespace std; class For_each_prin//利用仿函数输出容器中元素 { public: void operator()(int val)const { cout << val << " "; } }; class Elem { public: int operator()(int val)const { return val; } }; void text() { vector<int>v; for (int i = 0; i < 10; i++) { v.push_back(i); } vector<int>Target;//目标容器 Target.resize(v.size());//目标容器需提前开辟空间 transform(v.begin(), v.end(), Target.begin(), Elem()); for_each(Target.begin(), Target.end(), For_each_prin()); } int main() { text(); return 0; } ``` . 最后修改:2021 年 09 月 23 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果文章有用,请随意打赏。