C++每日一练(STL算法——for each)
2016-10-26 19:12
239 查看
一、今日课题
for each二、实战演练
template<class InputIterator, class Function> Function for_each(InputIterator first, InputIterator last, Function fn) { while (first!=last) { fn (*first); ++first; } return fn; // or, since C++11: return move(fn); }
1)有何用?
假有一个类型为ContainerType类型的容器Container,它的每个元素的类型ElementType。
在C#中,数组就是这样一种容器。
在C++中,stl的vector、map等也是这样的容器。
如果要遍历容器Container的每个元素,在C#中可以使用如下代码:
foreach( ElementType element in Container) { // 使用element访问该元素 }
而在C++中,通常的代码都会是这样:
Container::iterator iter; for (iter = Container.begin(); iter!=Container.end(); iter++) { // 使用(*iter)访问该元素 }
显然C#中的代码更清晰的多。而C++的代码中包含了变量声明和循环控制,显得更复杂了。
2)怎么用?
#include <algorithm> #include <vector> #include <iostream> using namespace std; int main() { int nums[3] = { 1, 2, 3 }; vector<int> vs = { 0, 1, 2, 3, 4 }; for (int num:nums) { cout << num <<" \t"; } cout << endl; for each(int v in vs) { cout << v << "\t"; } system("pause"); return 0; }
三、C++树
10/26/2016 7:10:53 PM
相关文章推荐
- C++每日一练(STL算法——find)
- C++每日一练(STL算法——remove)
- C++每日一练(STL算法——sort)
- C++每日一练(STL算法——copy)
- C++ STL 分割算法
- C++ STL list 成员函数 sort算法分析
- <学习笔记>Algorithm Library Design 算法库设计in c++ II(STL与泛型编程)
- C++STL算法分析之:变易算法
- C++ 之高效使用STL(移除算法的选择)
- c++ stl 算法使用
- C++ STL 排列算法
- C++ 之高效使用STL ( STL 算法分类)
- Data Structures with C++ Using STL Chapter 3算法概述---笔记
- 【C++ STL】算法 <algorithm>中各种算法解析
- c++ stl 函数作为演算法参数
- C++ STL标准容器插入删除算法的复杂度
- C/C++中的 归并算法 STL
- C++ 之 高效使用STL(泛型算法设计原理解析)
- C++ STL 算法 --- 你可能不知道的一些用法
- 【C++ STL学习之六】STL算法之for_each