std::for_each
来源:互联网 发布:maya mac 2017中文版 编辑:程序博客网 时间:2024/05/21 12:45
function template
<algorithm>
std::for_each
template <class InputIterator, class Function> Function for_each (InputIterator first, InputIterator last, Function fn);
Apply function to range
Applies function fn to each of the elements in the range [first,last)
.The behavior of this template function is equivalent to:
123456789
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);}
Parameters
- first, last
- Input iterators to the initial and final positions in a sequence. The range used is
[first,last)
, which contains all the elements between first andlast, including the element pointed by first but not the element pointed bylast. - fn
- Unary function that accepts an element in the range as argument.
This can either be a function pointer or a move constructible function object.
Its return value, if any, is ignored.
Return value
- C++98
- C++11
Returns fn.
Example
123456789101112131415161718192021222324252627282930
// for_each example#include <iostream> // std::cout#include <algorithm> // std::for_each#include <vector> // std::vectorvoid myfunction (int i) { // function: std::cout << ' ' << i;}struct myclass { // function object type: void operator() (int i) {std::cout << ' ' << i;}} myobject;int main () { std::vector<int> myvector; myvector.push_back(10); myvector.push_back(20); myvector.push_back(30); std::cout << "myvector contains:"; for_each (myvector.begin(), myvector.end(), myfunction); std::cout << '\n'; // or: std::cout << "myvector contains:"; for_each (myvector.begin(), myvector.end(), myobject); std::cout << '\n'; return 0;}
Edit & Run
Output:
myvector contains: 10 20 30myvector contains: 10 20 30
Complexity
Linear in the distance betweenfirst and last: Applies fn to each element.Data races
The objects in the range[first,last)
are accessed (each object is accessed exactly once).These objects may be modified if InputIterator is a mutable iterator type andfn is not a constant function.
Exceptions
Throws if fn throws or if any of the operations on iterators throws.Note that invalid arguments cause undefined behavior.
See also
- transform
- Transform range (function template)
- find
- Find value in range (function template)
- search
- Search range for subsequence (function template)
0 0
- std::for_each
- std::for_each
- C++ std::for_each
- 代码片段----std::for_each
- std::for_each()的奇怪现象
- 利用std::for_each 定义宏函数
- C++中std::for_each的使用
- std::stable_sort 和 std::for_each 的用法[转]
- for_each
- for_each
- for_each
- for_each
- for_each
- for_each
- for_each
- for_each
- for_each
- for_each
- 在所有文件中查找包含某字符串的文件
- Java 内存分配全面浅析
- NYOJ Radar
- linux系统启动脚本执行顺序
- Core Animation学习笔记一:CATransactions
- std::for_each
- ORACLE 存储过程 得到表名
- 如何使用KeyChain保存和获取UDID
- 类前置声明的问题
- 浅析Android Camera开发中的三个尺寸和三种变形 (贡献一个自适配Picturesize和Previewsize的工具类)
- pin 插装学习之一
- 文件过大,无法复制
- ssdb 安装:
- Effective C++ (笔记) : 条款01 -- 条款04